通常,当我想从远程存储库更新项目时,我使用以下命令行。
git pull -a origin develop
我是从我的项目团队成员那里学到的,但我在互联网上找不到-a标志的答案。 -a是什么意思?
答案 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。
文档:
答案 2 :(得分:-1)
来自git pull --help
:
-a, - append将获取的引用的引用名称和对象名称附加到.git / FETCH_HEAD的现有内容中。如果没有此选项,.git / FETCH_HEAD中的旧数据将被覆盖。