修复git中的合并提交
我搞砸了。我把另一个分支并入我的分支。双方的变化都很大,所以我花了很长时间来解决冲突。提交合并后,我意识到我忘记添加一个文件,因此合并提交不完整。我不想用一个“忘记的改变”的承诺来污染历史,所以我决定在推动之前修复它。我打电话修复git中的合并提交,git,git-merge,git-reset,Git,Git Merge,Git Reset,我搞砸了。我把另一个分支并入我的分支。双方的变化都很大,所以我花了很长时间来解决冲突。提交合并后,我意识到我忘记添加一个文件,因此合并提交不完整。我不想用一个“忘记的改变”的承诺来污染历史,所以我决定在推动之前修复它。我打电话 git reset --soft HEAD~ 然后我添加了丢失的更改,并希望重新提交。然而,git不再知道它应该是合并提交。有没有办法不重新执行整个合并?您可以签出到分支上的特定提交,因此在合并发生之前返回并重新执行所有操作 继续合并分支: git log 将显示具
git reset --soft HEAD~
然后我添加了丢失的更改,并希望重新提交。然而,git不再知道它应该是合并提交。有没有办法不重新执行整个合并?您可以签出到分支上的特定提交,因此在合并发生之前返回并重新执行所有操作 继续合并分支:
git log
将显示具有关联ID(或密钥)的分支上的所有提交,只需复制所需提交密钥的前几个字母
git checkout [commit_id you copied]
在合并之前,您现在应该在分支上。
如果您希望继续浏览提交,您可以不使用提交ID进行签出。如果我想修改上次提交(无论是合并提交还是普通提交),我会怎么做:
git添加。
现在您已经到了提交原始合并的时候了,现在您可以从头开始执行4、5和6。我知道我可以“全部重做”,但我问我是否可以“不重新执行整个合并”来修复它(因为这不是一件容易的事)。请注意,如果您签出以前的提交,您处于
分离头部状态
,在该状态下无法提交任何内容。如果您想重做合并(正如我在另一个答案中解释的,这是不必要的),那么您必须使用git reset--hard[commit\u id\u you\u copied]