【发布时间】:2013-05-08 12:11:12
【问题描述】:
我在合并到远程分支之前提交了一些测试代码。这次合并有很多冲突,并且花了一些时间来纠正。所以我的历史看起来是这样的:
7ab562c Merge from remote branch
... whole load of commits brought across from the remote branch...
f3e71c2 Temporary TESTING COMMIT
测试代码很好,我真的只是想更改提交消息。通常我会直接使用git rebase -i f3e71c2^(因为尚未推送任何内容),但一位同事告诉我这会破坏合并。我真的不想搞砸合并:)
我的同事说得对吗?如果是这样,我有什么可以做的,还是我只需要忍受这段历史?
【问题讨论】:
-
git commit --amend? -
@kan: 这只适用于修改最新的提交,这里不是这种情况。
-
推荐少一些恐惧!如果您搞砸了,只需
git reset --hard 7ab562c即可返回您的合并后状态并重试。另外,查看git rerere让 git 记住如何解决合并冲突。 -
在我们的商店中,一些不太懂 git 的用户经常会得到一些非常……有创意的历史。通常他们并不关心他们的历史是什么样子,他们只是希望能够轻松地进行同行评审,所以我让他们做类似的事情:
git pull(&解决冲突),git reset --soft origin/develop(留下事情的状态就像他们在合并之后一样),然后是git commit。这实际上是在压缩/重新调整他们的更改。