git pull 命令是一个速记命令,被解释为“git fetch”加上“git merge FETCH_HEAD”命令。如果您为拉取提供 -p 标志,则实际上是 --prune 命令与命令的“git fetch”部分一起运行。这将删除(修剪)本地存储库中不再存在于源上的所有远程跟踪分支。
也许现在这应该是第二个问题:
\n\n\n\n\n但我不明白 git-pull 如何与 git-fetch 结合?\n 我如何才能弄清楚如何以及哪些 git 选项通过一个命令落入另一个命令?
\n
(我认为你的意思是“合作” 1而不是“公司”。)
\n\n该git pull命令曾经是一个 shell 脚本。在脚本中,很容易判断哪些选项传递给git fetch,哪些选项传递给git mergeorgit rebase,哪些选项直接使用。
从 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 没有区别,我们就完成了),要么失败(在这种情况下,是时候进行检查了)。
(可能值得添加一个别名git fff运行的别名git fetch && git mff...:-))
1这可以写成“cooperate”,不带连字符,甚至可以写成“co\xc3\xb6perate”,在第二个 o 上方有分音符。分音符在精美印刷的英文文本中很常见(《纽约客》仍然使用它!),但由于打字机无法输出它,因此在 1900 年代初至中期开始不那么常见。现在计算机已经有了 Unicode 和变音符号\xe2\x80\x94,它们在技术上是不同的,但符号上是相同的\xe2\x80\x94,我认为我们应该将分音符号恢复到之前的\xc3\xabminence。:-)
\n