git-pull 如何与 git-fetch 合作(是:git-pull 选项 `-p` 是什么意思)?

Eug*_*kov 6 git git-pull git-fetch

有时我在文章命令中看到:git pull -p
但我没有在官方文档中找到相关信息

这个选项是什么意思?

UPD

正如@torek 所指出的,该-p选项被传递给git fetch. 而-p在这里是指:

-p
--prune
在获取之前,删除远程上不再存在的任何远程跟踪引用。

但我不明白git-pull 企业是如何合作的git-fetch
我如何才能弄清楚哪些git选项如何以及哪些选项从一个命令落到另一个命令?

JGT*_*lor 7

git pull 命令是一个速记命令,被解释为“git fetch”加上“git merge FETCH_HEAD”命令。如果您为拉取提供 -p 标志,则实际上是 --prune 命令与命令的“git fetch”部分一起运行。这将删除(修剪)本地存储库中不再存在于源上的所有远程跟踪分支。


tor*_*rek 4

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

\n\n
\n

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

\n
\n\n

(我认为你的意思是“合作” 1而不是“公司”。)

\n\n

git pull命令曾经是一个 shell 脚本。在脚本中,很容易判断哪些选项传递给git fetch,哪些选项传递给git mergeorgit rebase,哪些选项直接使用。

\n\n

从 Git 2.6.0 版本开始,pull 命令被用 C 重写。仍然可以看出哪些选项是哪些,但现在有点困难,因为你必须进一步向下查找才能找到文本拼写每个选项。(第二个链接可能会随着时间的推移而衰减,因为它让 GitHub 查找源文件的当前版本,并且行号可能会发生变化。)

\n\n

我本人建议避免git pull:运行git fetch,然后检查结果,然后根据需要选择git rebase(通常)或(有时)。git merge我还保留一个别名 ,git mff它扩展为git merge --ff-only,并且我倾向于运行git fetch && git mff:如果快进失败,我可能想要变基,除非我想合并,并且这个序列(如果快进则获取并合并)要么成功(在这种情况下,rebase 与 merge 没有区别,我们就完成了),要么失败(在这种情况下,是时候进行检查了)。

\n\n

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

\n\n
\n\n

1这可以写成“cooperate”,不带连字符,甚至可以写成“co\xc3\xb6perate”,在第二个 o 上方有分音符。分音符在精美印刷的英文文本中很常见(《纽约客》仍然使用它!),但由于打字机无法输出它,因此在 1900 年代初至中期开始不那么常见。现在计算机已经有了 Unicode 和变音符号\xe2\x80\x94,它们在技术上是不同的,但符号上是相同的\xe2\x80\x94,我认为我们应该将分音符号恢复到之前的\xc3\xabminence。:-)

\n