GitHub入门与实践笔记.md

1.1 什么是 GitHub

  GitHub 是为开发者提供 Git 仓库的托管服务。这是一个让开发者与朋友、同事、同学及陌生人共享代码的完美场所。

1.1.5 使用GitHub前配置

  使用git命令生成一个SSH key 

      $ ssh-keygen -t rsa -C  "your_email@example.com"

  查看生成的key使用命令 

      $ cat ~/.ssh/id_rsa.pub 

   然后在gitHub用户配置Account settings里加入,测试是否配置成功

      $ ssh -T git@github.com

1.2 git是什么

Git是分散性版本管理系统.

   集中型与分散型区别

    Svn将仓库集中存放在服务器之中,所以只存在一个仓库。这种版本管理系统会被称作集中型,集中性便于管理.

    SVN一旦服务器无法连接,开发就无法协作. 由于所有人提交都在主干容易冲突,SVN创建分支是复制一份文件,而Git是克隆一份配置,SVN切换分支很慢,git瞬间完成

    Git将仓库Fork出来,仓库存放在本地,Git可以不依赖网络,所有用户Fork出来的仓库可以互相pull和push, Git的主干master也是分支只是不用于开发,作为稳定提交版本。

1.3 Git基本操作

初始化一个仓库:
    $ mkdir  git-tutorial  
    $ cd  git-tutorial
    $ git init
查看文件状态:
    $ git status
把新建的文件加入缓存区
    $ git add ReadMe.md//让文件成为 Git 仓库的管理对象
    $ git add .   //提交所有未追踪的文件
提交文件:
    $ git  commit//git commit进入编辑器填写提交信息退出编辑器  
                   按ESC键,以确保您不在编辑模式,然后键入:wq
    $ git  commit  -m  "test commit"//test commit 提交信息
    $ git commit  -am "Add feature-D"  //可以省略add
    $ git  commit  --amend  //修改刚提交的信息
查看提交日志:
    $ git log //只能查看当前状态为终点的日志
    $ git reflog //查看当前仓库所有操作日志     就算回退到2版本 也还可以查看到3    回滚错误时
    $ git log --graph //图表可以很清楚查看合并,创建
    $ git log --perrty=short //只显示提交信息的第一行
    $ git log ReadMe.md  //只显示指定目录、文件的日志
    $ git log -p //显示文件的前后差别
    $ git log -p  ReadMe.md //指定文件前后差别
更改前后区别:
    $ git diff  //查看当前工作树与暂存区的差别。  如果工作树和暂存区的状态并无差别,结果什么都不会显示
    $ git diff HEAD //查看最新提交与上次提交区别
分支操作:
    $ git branch  //查看所有分支
    $ git branch -a //-a参数可以同时显示本地仓库和远程仓库的分支信息  
    $ git checkout -b  feature-A  //创建并且切换到feature-A分支
    $ git branch -d feature-A //删除feature-A分支
    $ git checkout master //切换master分支
    $ git merge  --no-ff feature-A//将featurea-A分支合并到当前分支
更改提交操作:
    $ git reset --hard 83d261f168a0c17c83be9d727fc6c3a883457143//回退版本到创建featura-A前
压缩提交历史:
    $ git rebase  -i  HEAD~2 //把最近2次历史 压缩为一次  编辑器中把要压缩的Pick改为 fixup
推送到远程仓库:
    $ git remote -v //查看设置的远程地址
    $ git remote rm upstream  //删除一个远程地址
    $ git remote add tutorialGitHub git@github.com:vicococ/git-tutorial.git  //创建一个远程地址 名称为tutorialGitHub
    $ git push -u tutorialGitHub master  //把本地的master分支推送到远程master分支
                   -u参数可以在推送的同时,将 tutorialGitHub 仓库的 master 分支设置为本地仓库当前分支的 upstream(上游),
                                                                        这样后面就可以不加任何参数使用git push。 
                   git pull从远程获取内容时。可以省略主机名,本地仓库当前分支就可以直接从 tutorialGitHub 的 master 分支获取内容,

远程仓库获取:  
    $ git clone  git@github.com:vicococ/git-tutorial.git //获取一个github项目  支持多种协议,除了HTTP(s)以外,还支持SSH、git各种协议
    $ git clone -o tutorial git@github.com:vicococ/git-tutorial.git   获取并命名仓库为tutorial
    $ git checkout -b feature-D origin/feature-D //获取远程仓库的feature-D项目  克隆版本库的时候,
                                                   所使用的远程仓库自动被Git命名为origin。如果想用其他的主机名,需要用git clone命令的-o选项指定。
    $ git push//推送代码 无需加参数
获取最新数据:
    $ git pull  tutorialGitHub  feature-D //获取 feature-D分支 与 当前分支合并
    $ git pull  tutorialGitHub feature-D:master  //获取tutorialGitHub主机feature-D分支和本地的master分支合并
将fork的分支获取原分支最新数据:
    $ git remote add upstream https://github.com/ituring/first-pr.git //设置原分支主机
    $ git fetch upstream gh-pages:latestCode//获取远程分支gh-pages到本地创建一个latestCode分支
    $ git merge latestCode  //合并latestCode分支到master
第二种方式:
      $ git fetch upstream gh-pages //获取远程的 gh-pages分支
    $ git merge upstream/gh-pages //和当前分支合并
pull和fetch的区别 
    git fetch:相当于是从远程获取最新版本到本地,不会自动merge,pull会自动merge  多人协作用fetch  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值