使用git pull -a origin开发时-a标志意味着什么?

时间:2016-12-02 23:26:41

标签: git pull

通常,当我想从远程存储库更新项目时,我使用以下命令行。

git pull -a origin develop

我是从我的项目团队成员那里学到的,但我在互联网上找不到-a标志的答案。 -a是什么意思?

3 个答案:

答案 0 :(得分:4)

git pull命令基本上只是一个方便的捷径。 1 它首先运行git fetch,然后运行另一个Git命令。第二个Git命令默认为git merge,但在各种情况下,您可以将第二个命令设为git rebase

git pull这是全部:它运行另外两个Git命令。 git pull的所有选项和参数都可以控制它使用的第二个命令,或者通常直接传递给其他命令之一。

在这种情况下,-a--append会传递给git fetch,告诉它将所有提取的引用附加到FETCH_HEAD文件(而不是替换任何现有的FETCH_HEAD文件都提取了引用。除非您自己使用FETCH_HEAD,否则此选项无用。

1 由于运行的最佳第二命令可能取决于第一个命令的结果,因为方便起见,这个是真的非常不方便。这就像在你知道它是在你的社区,你所在的城市还是在另一个大陆之前,必须决定是走路,开车还是飞往目的地。

答案 1 :(得分:0)

... pull -a与--append相同。 从官方文档:

  

-a

     

- 追加将获取的引用的引用名称和对象名称附加到.git / FETCH_HEAD的现有内容。没有这个选项旧数据

     <。> .git / FETCH_HEAD中的

将被覆盖。

如果您只想更新分支的历史记录,请尝试使用

  
    

git fetch

  
     

将来自远程存储库的更改合并到当前分支中。   在默认模式下,git pull是git fetch的简写,后跟   git merge FETCH_HEAD。

     

更确切地说,git pull使用给定的参数运行git fetch   调用git merge将检索到的分支头合并到当前   科。使用--rebase,它运行git rebase而不是git merge。

文档:

  

fetch

     

pull

答案 2 :(得分:-1)

来自git pull --help

  

-a, - append将获取的引用的引用名称和对象名称附加到.git / FETCH_HEAD的现有内容中。如果没有此选项,.git / FETCH_HEAD中的旧数据将被覆盖。