开发人员正在对两个文件进行小的更改。但是在这次提交期间,他遇到了 merge 冲突,删除了很多东西(可能没有最新的版本)。然后它被推送到共享仓库,其他一些开发人员做了一些其他提交。
现在,我们注意到 merge 删除了重要文件,我们想将其还原。
我怎样才能在不丢失下一次提交的更改的情况下执行此操作?
我试图 git revert commitsha
,但它没有恢复更改。我需要还原 mergesha
吗?我怎样才能确定它?
最佳答案
git revert --mainline
通常:
git revert --mainline 1 dd8cbe3e4
地点:
dd8cbe3e4
是您要撤消的错误 merge 提交,并且--mainline
告诉您要恢复之前的多个提交中的哪一个(请记住, merge 提交有多个父提交,您只能保留其中一个)。- 对于
1
的含义我找不到很好的解释,但我的猜测是1,2,3...
对应于映射列表紧接在dd8cbe3e4
之前的提交,按升序时间顺序排序(最旧的在前 - 这通常是您想要恢复的)。
- 对于
来源:
http://thezencoder.com/2013/09/05/how-to-correctly-revert-a-bad-merge-in-git/
关于git - 还原 merge 所做的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8323029/