git-pull 公司如何使用 git-fetch(是:git-pull 选项 `-p` 是什么意思)?

How git-pull corporate with git-fetch (was: what does git-pull option `-p` mean)?

有时我在文章命令中看到:git pull -p
但我没有在 official documentation

中找到相关信息

这个选项是什么意思?

UPD

如@torek 所述,-p 选项已传递给 git fetch。而-p这里的意思是:

-p
--prune
Before fetching, remove any remote-tracking references that no longer exist on the remote.

但不明白git-pull企业如何与git-fetch合作?
我如何弄清楚 git 选项如何以及哪些 git 选项通过一个命令落入另一个命令?

git 拉命令是一个 shorthand 命令,它被解释为 "git fetch" 加上一个 "git merge FETCH_HEAD" 命令。如果你给一个拉动一个 -p 标志,它实际上是 --p运行e 命令用命令的 "git fetch" 部分得到 运行 。这将删除 (p运行es) 本地存储库中不再存在于源上的所有远程跟踪分支。

看来答案是here

git-pullgit-fetch 相似之处:两者都用于从远程存储库下载 新数据。

  • git-fetch 实际上只从远程存储库下载新数据
  • git-pull不仅下载新数据;它还直接新数据整合到您当前的工作副本文件中(下载+合并)

也许这应该是第二个问题:

But I do not understand how git-pull corporate with git-fetch? How I can figure out how and which git options fall through one command to another?

(我想你在这里的意思是 "co-operate"1 而不是 "corporate"。)

git pull命令used to be a shell script。在脚本中,很容易分辨哪些选项传递给 git fetch,哪些传递给 git mergegit rebase,哪些直接使用。

从Git version 2.6.0 开始,pull 命令被用C 重写了。still possible to tell 哪些选项是哪些,但现在有点困难,因为你必须往下看才能找到每个选项的文本拼写。 (这第二个 link 可能会随着时间的推移而衰减,因为它 GitHub 查找源文件的当前版本,行号可能会改变。)

我自己建议避免 git pull: 运行 git fetch,然后检查结果,然后选择 git rebase(通常)或 git merge(有时)如所须。我还保留了一个别名,git mff,它扩展为 git merge --ff-only,我倾向于 运行 git fetch && git mff:如果快进失败,我可能想要变基,除非

(可能值得添加一个别名 git fff,即 运行s git fetch && git mff... :-))


1这可以写成 "cooperate",不带连字符,甚至可以写成 "coöperate",加上 diaeresis above the second o. The diaeresis was common in English text in fine printing (and The New Yorker still uses it!)但由于打字机无法生产它,在 1900 年代初期至中期开始变得不那么普遍了。既然计算机有 Unicode 和变音符号——它们在技术上不同,但在符号上是相同的——我认为我们应该恢复分音符的优势。 :-)