git pull

作者: Muscleape | 来源:发表于2018-09-06 10:30 被阅读25次

    git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂;

    $ git pull <远程主机名> <远程分支名>:<本地分支名>
    

    常用命令

    git pull origin next:master

    • 取回origin主机的next分支,与本地的master分支合并;

    git pull origin next

    • 远程分支是与当前分支合并;
    • 上面命令表示,取回origin/next分支,再与当前分支合并;
    • 实质上,这等同于先做git fetch,再做git merge;
    $ git fetch origin
    $ git merge origin/next
    

    tracking(分支之间的追踪关系)

    在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking);

    比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,也就是说,本地的master分支自动"追踪"origin/master分支;

    $ git branch --set-upstream master origin/next
    
    • 上面命令指定master分支追踪origin/next分支;
    • 如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名;
    $ git pull origin
    
    • 上面命令表示,本地的当前分支自动与对应的origin主机"追踪分支"(remote-tracking branch)进行合并;
    • 如果当前分支只有一个追踪分支,连远程主机名都可以省略;
    $ git pull
    
    • 上面命令表示,当前分支自动与唯一一个追踪分支进行合并;

    • 如果合并需要采用rebase模式,可以使用--rebase选项;

    $ git pull --rebase <远程主机名> <远程分支名>:<本地分支名>
    

    如果远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对应的本地分支。这是为了防止,由于其他人操作了远程主机,导致git pull不知不觉删除了本地分支;

    可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的分支;

    $ git pull -p
    ## 等同于下面的命令
    $ git fetch --prune origin 
    $ git fetch -p
    

    相关文章

      网友评论

          本文标题:git pull

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