【问题标题】:Why use git fetch or pull [duplicate]为什么使用 git fetch 或 pull [重复]
【发布时间】:2020-02-12 07:49:50
【问题描述】:

我已经阅读了一些关于 fetch 与 pull 的帖子。我把它推送到你需要获取的遥控器。我也明白,如果您需要检查添加到远程的分支,您需要从远程获取以更新本地跟踪分支。我的问题是我为什么不干脆就拉一下?为什么大多数开发人员建议改为进行 fetch?在什么情况下你只是在做一个提取?给我画一个场景。

【问题讨论】:

  • this 链接可能有助于您的理解。
  • 我不知道你在哪里读到“我把它推送到你需要获取的遥控器”,但它非常具有误导性。你不需要获取任何东西来推送。这可能是一种笨拙的说法:“在推送之前,获取的目的是检查您尝试更新的 ref 自上次从该远程获取以来是否发生了变化。”
  • 我不同意解释“git fetch”和“git pull”之间的区别是在解释为什么要使用其中一个或另一个。对基本概念以及何时适用的很好的解释在这里 - longair.net/blog/2009/04/16/git-fetch-and-merge

标签: git


【解决方案1】:

git fetch 更新存储库的本地副本,但不修改工作目录中的任何文件。它只是确保它所拥有的关于您获取的存储库的缓存信息是最新的。 (如果其他人在您上次获取后创建了新分支或添加了一些提交,git 会了解它们。)

git pull is shorthandgit fetch,后跟git merge FETCH_HEAD。也就是说,它运行git fetch,然后将远程存储库中的更改合并到您当前的分支和工作目录中。 (正如 Mark 所指出的,这实际上修改了HEAD。)

因此,您应该使用的命令取决于您是否要使用自上次拉取后其他人所做的提交来更新您的工作目录。

【讨论】:

  • 实际上是您是否要更新HEAD - 顺便说一句,这也会影响您的索引和工作树
【解决方案2】:

当您想查看远程上的任何更新,但您不想立即将任何此类更改集成到当前分支中时,您可以获取。

这是唯一普遍适用的答案;其他任何内容都只是基于特定工作流程和特定用户偏好的示例;那么,这可能适用于您,也可能不适用于您。

【讨论】:

    猜你喜欢
    • 2017-06-30
    • 2021-08-17
    • 2011-03-22
    • 2022-06-14
    • 2013-08-20
    • 2018-04-11
    • 2011-09-11
    相关资源
    最近更新 更多