git pull命令用于从另一个存储库或本地分支检索和集成。 git pull命令的作用是获取远程主机上的分支更新,并将其与本地指定分支合并。 完整的形式有点复杂。
使用语法
git pull [ options ] [ repository [ ref spec…]外壳程序,描述
将远程存储库更改合并到当前分支中。 在缺省模式下,git pull是git fetch后面跟git merge FETCH_HEAD的缩写。
更确切地说,git pull使用指定的参数执行git fetch,然后调用git merge将检索到的分支标头合并到当前分支中。 如果使用--rebase,将运行git rebase而不是git merge。
示例$ git pull远程主机名远程分支名称:本地分支名称shell
例如,要获取origin主机的next分支并将其与本地master分支合并,必须写-
如果将$ gitpulloriginnext : master shell远程分支(next )与当前分支合并,则可以省略冒号后面的部分。 上述命令可以缩短为:
$ git pull origin next Shell上的命令指示检索origin/next分支并将其与当前分支合并。 实际上,这与先运行git fetch,然后运行git merge是一样的。
$ gitfetchorigin $ gitmergeorigin/next shell在某些情况下,git会自动在本地分支和远程分支之间建立跟踪关系(tracking )。 例如,在git clone的情况下,默认情况下所有本地分支都与远程主机的同名分支建立跟踪关系,也就是说,本地主分支自动“跟踪”原始/主分支。
在Git中,还可以手动创建跟踪关系。
$ git branch-- set-upstreammasterorigin/next shell上述命令通过指定主分支来跟踪origin/next分支。
如果当前分支与远程分支存在跟踪关系,则git pull可以省略远程分支名称。
$ git pull origin Shell上的命令会自动将本地当前分支与相应origin主机上的“跟踪分支”(remote-tracking branch )合并。
如果当前分支只有一个跟踪分支,则可以省略到远程主机名。
$ git pull Shell上的命令会自动将当前分支与唯一的跟踪分支合并。
如果合并需要rebase模式,则可以使用rebase选项。
$ git pull --rebase远程主机名远程分支名称:本地分支名称git fetch和git pull之间的差异
git fetch :相当于从远程本地获取最新版本,不会自动集成。 $ gitfetchoriginmaster $ git log-p master . origin/master $ gitmergeorigin/master shell或更高版本命令的含义:
上述过程首先从远程origin主分支下载最新版本到origin/master分支,然后比较本地主分支和origin/master分支之间的差异,最后进行合并
$ gitfetchoriginmaster 3360 tmp $ gitdifftmp $ gitmergetmp shell2. git pull :相当于从远程获取最新版本并进行本地merge
git pull origin master Shell如果git fetch和git merge实际使用,则以上命令相当于git fetch更安全。 因为可以在合并之前检查更新情况,然后决定是否合并。