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

时间:2015-03-29 10:25:27

标签: git git-merge git-fetch

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

我们的小型开发团队正在服务器上共享一个git repo。我的同事刚推,我抓了,所以他的提交现在在我的本地存储库中。我可以看到它们:

git log ..origin/mybranch

并用以下方式检查:

git diff <hash>

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

  • 如何在将提交合并到我的工作副本之前进行“修改”?
  • 如果我能做到以上情况,会影响远程存储库吗? (我已经读过,例如推动之后不应该改变)
  • 如果我无法执行上述操作,如何在合并后修复更改? (例如,手动,......)

简而言之:有人可以概述通常在“获取”和“合并”之间执行的操作,以查看和编辑更改吗?

1 个答案:

答案 0 :(得分:1)

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

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

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

git reset 

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

在&#34; How do you merge selective files with git merge?&#34;

中还有其他选项