为什么Git不获取更新本地分支?

Why doesn't git fetch update local branch?

本问题已经有最佳答案,请猛点这里访问。

我有以下场景:

我的远程分支机构与本地分支机构相同。然后我在远程分支中做了一些更改,在本地分支中做了一些不同的更改。

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

为什么git fetch不能按预期工作?或者我如何在提交之前审查这些差异?


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

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


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

git pullgit fetchgit merge的组合,这就是git pull似乎"修正"这种行为的原因。