美文网首页
分支管理

分支管理

作者: yz_wang | 来源:发表于2016-10-24 23:51 被阅读0次

    几个基本操作

    • git add
      命令实际上就是把要提交的所有修改放到暂存区(Stage)
    屏幕快照 2016-10-24 下午11.21.48.png
    • 执行git commit
      就可以一次性把暂存区的所有修改提交到分支
    屏幕快照 2016-10-24 下午11.21.26.png
    • 管理修改
      Git跟踪并管理的是修改,而非文件
      什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。
      第一次修改 -> git add -> 第二次修改 -> git add -> git commit
      每次修改,如果不add
      到暂存区,那就不会加入到commit
      中。

    • 撤销修改
      场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
      场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
      ,就回到了场景1,第二步按场景1操作。
      场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

    • 删除文件
      一般情况下,你通常直接在文件管理器中把没用的文件删了,这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status
      命令会立刻告诉你哪些文件被删除了。
      现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm
      删掉,并且git commit
      现在,文件就从版本库中被删除了。

    另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
    $ git checkout -- test.txt
    git checkout
    其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

    远程仓库

    • Github是个提供Git仓库托管服务的网站,本地Git仓库和Github仓库之间传输通过SSH加密。
    • git clone 是把Github远程仓库克到自己电脑上的本地仓库
    • $ git remote add origin git@github.com:michaelliao/learngit.git 用于将远程仓库和自己本地已存在的仓库关联
    • git push命令,把当前分支master推送到远程
    • 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
      $ git push -u origin master
      从现在起,只要本地作了提交,就可以通过命令:
      $ git push origin master
      把本地master分支的最新修改推送至GitHub

    分支管理

    • 每次提交(commit),Git都把它们串成一条时间线,这条时间线就是一个分支。默认master一个分支。
    • 当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
    $ git checkout -b dev
    Switched to a new branch 'dev'
    

    这条命令等价于
    $ git branch dev$ git checkout devSwitched to branch 'dev'
    转换完成后,可以用命令查看当前处于哪个分支
    $ git branch* dev master

    屏幕快照 2016-10-24 下午11.40.58.png

    从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:


    屏幕快照 2016-10-24 下午11.41.29.png
    $ git add readme.txt 
    $ git commit -m "branch test"
    [dev fec145a] branch test 1 file changed, 1 insertion(+)
    

    假如我们在dev上的工作完成了,就可以把dev
    合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:

    $ git checkout master
    Switched to branch 'master'
    
    $ git merge dev
    Updating d17efd8..fec145a
    Fast-forward readme.txt | 1 + 
    1 file changed, 1 insertion(+)
    
    屏幕快照 2016-10-24 下午11.42.45.png

    合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:

    $ git branch -d dev
    Deleted branch dev (was fec145a).
    
    屏幕快照 2016-10-24 下午11.43.18.png

    相关文章

      网友评论

          本文标题:分支管理

          本文链接:https://www.haomeiwen.com/subject/rqtruttx.html