git–基础–2.6–命令–git pull
1、介绍
- 取回远程主机某个分支的更新,再与本地的指定分支合并
2、命令
2.1、git pull <远程主机名> <远程分支名>:<本地分支名>
- 取回远程主机的远程分支,与本地分支合并
2.1.1、git pull master33 master:branch2
- 取回远程主机master33的远程分支master,与本地分支branch2合并
2.1.2、git pull master33 master
- 取回远程主机master33的远程分支master,再与当前分支合并。等同于
> git fetch master33 master
> git merge branch2
2.1.3、追踪关系(tracking)
-
在某些场合,Git会自动在本地分支与远程分支之间,建立一种追踪关系(tracking)。
比如,在git clone的时候,所有本地分支默认与远程主机的同名分支,建立追踪关系,
也就是说,本地的branch2分支自动"追踪"master33/master分支。 -
Git也允许手动建立追踪关系。
2.1.3.1、git branch --set-upstream branch2 master33/master
- 上面命令指定branch2分支追踪master33/master分支。
- 如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。
2.1.3.2、git pull master33
- 本地的当前分支自动与对应的master33主机"追踪分支"(remote-tracking branch)进行合并。
- 如果当前分支只有一个追踪分支,连远程主机名都可以省略。
2.1.3.3 git pull
上面命令表示,当前分支自动与唯一一个追踪分支进行合并。
如果合并需要采用rebase模式,可以使用–rebase选项。
2.1.3.3.1、git pull --rebase <远程主机名> <远程分支名>:<本地分支名>
-
如果远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对应的本地分支。这是为了防止,由于其他人操作了远程主机,导致git pull不知不觉删除了本地分支。
-
你可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的分支。
git pull -p 等同于下面的命令 $ git fetch --prune master33 $ git fetch -p