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