当使用git pull -a origin develop命令时,-a标志代表什么意思?

5
通常当我想要从远程仓库更新项目时,我会使用以下命令行。
git pull -a origin develop

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


快速谷歌搜索:https://git-scm.com/docs/git-pull#git-pull--a 将获取的引用名称和对象名称附加到 .git/FETCH_HEAD 的现有内容中。如果没有此选项,.git/FETCH_HEAD 中的旧数据将被覆盖。 - random_user_name
3个回答

7
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由于最好的第二个命令可能取决于第一个命令的结果,因此作为便利性而言,这个命令实际上非常不方便。这就像在您不知道目的地是在您的社区,您的城市还是在另一个大陆之前,必须决定步行,开车还是乘飞机去目的地。

0

... 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。

文档:

fetch

pull


-1

来自 git pull --help

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接