通常当我想要从远程仓库更新项目时,我会使用以下命令行。
git pull -a origin develop
我从项目团队成员那里学到了这个,但在互联网上找不到-a标志的含义。-a是什么意思?
git pull -a origin develop
我从项目团队成员那里学到了这个,但在互联网上找不到-a标志的含义。-a是什么意思?
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
,否则此选项无用。
... pull -a 等同于 --append。
来自官方文档:
-a
--append 将获取的引用名称和对象名称附加到 .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。
文档:
来自 git pull --help
:
-a, --append 将获取的引用名称和对象名称附加到 .git/FETCH_HEAD 的现有内容中。如果没有此选项,则会覆盖 .git/FETCH_HEAD 中的旧数据。