【问题标题】:How git-pull corporate with git-fetch (was: what does git-pull option `-p` mean)?git-pull 如何与 git-fetch 合作(是:git-pull 选项 `-p` 是什么意思)?
【发布时间】:2017-02-23 00:55:08
【问题描述】:

有时我会在文章命令中看到:git pull -p
但我在official documentation中没有找到相关信息

那个选项是什么意思?

UPD

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

-p
--修剪
在获取之前,删除远程上不再存在的所有远程跟踪引用。

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

【问题讨论】:

  • git pull 命令没有自己的-p 选项。实际发生的是-p 被传递给git fetch。不知道谁对此表示反对:-p 没有正确记录是正确的(在我看来,git pull 本身没有正确记录,但git pull 甚至不应该存在:-))。
  • @torek 也许那些认为-p 代表--patch 并将这个问题标记为重复的人
  • @KevinB 不,在那个问题中你链接到-p 的意思是--patch

标签: git git-pull git-fetch


【解决方案1】:

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

【讨论】:

  • 哈。在我回答您的问题时,有人编辑了您的问题。 :) 我希望我的回答仍然有助于为您阐明“拉”命令的两个部分?
  • 尽管格式错误,但您的答案很有用。 +1 ;-)
【解决方案2】:

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

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

(我认为您的意思是 "co-operate"1 而不是“公司”。)

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

从 Git 版本 2.6.0 开始,pull 命令已用 C 语言重写。still possible to tell 哪些选项是哪些选项,但现在变得有些困难,因为您必须进一步向下查找每个选项的文本拼写。 (第二个链接可能会随着时间的推移而衰减,因为它让 GitHub 查找源文件的当前版本,并且行号可能会改变。)

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

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


1这可以写成“cooperate”,不带连字符,甚至可以写成“coöperate”,在第二个 o 上方加上 diaeresis。分音符在精美印刷的英文文本中很常见(和The New Yorker still uses it!),但由于打字机无法产生它,在 1900 年代初至中期开始不那么常见了。既然计算机有 Unicode 和变音符号——它们在技术上是不同的,但在符号上是相同的——我认为我们应该恢复分音符号的重要性。 :-)

【讨论】:

  • flow feature finish 在我的环境中比别名忙 :-D
【解决方案3】:

似乎答案是here

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

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

【讨论】:

    猜你喜欢
    • 2012-12-22
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 2017-06-30
    • 2021-08-17
    相关资源
    最近更新 更多