我合并了两个分支,并且已经提交了它。 但是,我发现在解决冲突时我在某些文件中出错了。
commit 1234567
Merge: abcdefg hijklmn
Date: ....
Merge branch 'master' of repo into branchA
Conflicts:
fileA
...
我想将某些文件回滚到未解析状态,然后再次解决冲突。我怎么能这样做?
提前谢谢。
答案 0 :(得分:1)
使用git reset 'commit_id' --hard
在合并提交之前重置当前分支一次提交。然后再次合并分支并提交。
如果您只想更改单个文件,假设您想要的合并提交是abcde:git checkout abcde~1 'path/to/file'
。在提交之前将文件恢复到状态。然后再次合并。引自:https://stackoverflow.com/a/215731/1712948
答案 1 :(得分:0)
如果您已经推出了更改,那么这就是一个问题。 有两种选择,
1.添加更多提交并更正您所犯的错误。确保提交消息解释了您为什么这样做。这将确保正确维护历史记录。
2.第二个选项涉及弄乱历史。因此,如果您决定这样做,请记住您将破坏历史记录,因此您必须承担风险!这不是一种标准做法,而且非常气馁。
在您希望修复的分支上执行gitk
。
单击要将分支重置为的提交。右键单击并选择reset branch to here
。
现在正确合并。
强制将分支推到回购站。
现在,如果您没有推出更改,那么它就会变得更简单。
只需将本地功能分支重置为您希望的位置即可。
重做合并。
重新启动master
并将其推出。