git fetch - 查看和修改传入的更改

git fetch - reviewing and modifying incoming changes

我读到 git pull = git fetch + git merge,后者通常是首选,因为它允许人们在合并之前查看更改。

我们的小型开发团队正在服务器上共享一个 git 存储库。我的同事刚刚推送,我获取,所以他的提交现在在我的本地存储库中。我可以通过以下方式看到它们:

git log ..origin/mybranch

并检查它们:

git diff <hash>

现在假设我想将更改合并到我的工作副本中,但我不喜欢某些提交或一次提交的一部分。
我的问题是:

简而言之:有人可以概述通常在 "fetch" 和 "merge" 之间执行的操作以查看和编辑更改吗?

您可以在不提交结果的情况下进行合并:

git merge --no-ff --no-commit <hash>

然后你重置索引(但不是反映合并的工作树)

git reset 

最后,您可以 git add 任何文件,甚至 git add --patch 部分 您想要保留在合并结果中的文件。
或者您可以完全拒绝合并文件:git checkout HEAD -- aFile.

您在“How do you merge selective files with git merge?”中还有其他选项