【问题标题】:Why doesn't git fetch update local branch? [duplicate]为什么 git fetch 不更新本地分支? [复制]
【发布时间】:2018-05-20 04:23:30
【问题描述】:

我有以下场景:

我的远程分支等于我的本地分支。然后我在远程分支做了一些改动,在本地分支做了一些不同的改动。

我的想法是运行git fetch,同步我的本地分支,然后检查差异,然后推送所有内容,但它根本不起作用! (git fetch 之前似乎没有得到远程分支中所做的更改) 我知道运行git pull“修复”这个,或git push -f,但我想在提交之前查看更改。

为什么git fetch 没有按预期工作?或者我怎样才能在提交之前查看差异?

【问题讨论】:

  • @SurajRao 好吧,我的问题更多是关于为什么在这种情况下没有按预期工作,而不是这两个命令之间的差异
  • 嗯,我不同意这是一个重复的问题,因为这不是实际提出的问题,但如果您真的了解其中的区别,这是真的在 pull 和 fetch 之间,那么您的期望会有所不同,并且您不会认为 fetch 没有按预期工作。
  • git fetch 不会获得 changes (事实上分支不会 hold 更改)。 git fetch 获得的是 commits(每个分支名称,或 Git 中的任何其他名称,都只是指向 一个特定的提交)。

标签: git git-fetch


【解决方案1】:

要在合并之前查看本地分支和远程分支之间的差异,您可以在执行git fetch 之后使用git diff,如this question 中所述。

如果您想执行远程分支与本地分支的合并而不立即提交以允许您查看结果,您可以使用git pull --no-commit(如on git-scm.com 所述)。 --no-commit 选项可防止 Git 自动提交可能是拉取的一部分的合并,这将允许您在提交之前查看合并结果。

【讨论】:

    【解决方案2】:

    git fetch 从远程分支下载提交,但不会更新您的工作区。在将提交合并到本地分支之前,您不会看到提交。

    git pullgit fetchgit merge 的组合 - 这就是为什么 git pull 似乎“修复”了这种行为。

    【讨论】:

      猜你喜欢
      • 2019-09-18
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 2021-06-25
      • 2016-10-06
      • 2017-10-09
      • 2020-09-15
      • 1970-01-01
      相关资源
      最近更新 更多