我正处于一个有很多冲突的大变革中间。
在我意外删除一个文件而不是另一个文件之前发现了几个git rebase --continue
。
我如何回到pacth并修复此问题,然后重新应用补丁?
编辑:--abort
不是解决方案,因为我将不得不再次执行所有补丁。我想只中止其中的一部分
答案 0 :(得分:5)
你的回购中的所有内容都会一直存在,直到git看到它已经完全无法访问,通过任何参考,至少一个月 1 。
所以你已经做了一些相当于$('#wrapCheck').on('click', function (e) {
$('#example').dataTable().fnDraw();
});
的事情,自从分支以来就提出了26个关于主题的提交AZ,你做了一个非常糟糕的oops变调O并且没有真正得到满效果直到S:
git rebase master topic
你的退出是
A...O...Z topic
/
...b....* master
\
A2..O2..S2 the inflight rebase with the mistake in the rebased O, O2
现在你只需要重做被oops感染的提交。
如果O2~..S2系列中的提交有好的部分,你想要检索的冲突解决方案,你也可以标记S2,然后在重做时只需检查这些提交中的好部分,{ {1}}(你把S2标记为“boneyard”,好的部分在P2中)
我做到了这一点,给了一个改变,不得不重做它。如果每个人都在某个时刻做到这一点,我不会感到惊讶。即使对于像你这样看似可怕的案件,这也没什么大不了的。
1 您可以提前强制截断。不要这样做。
答案 1 :(得分:1)
执行以下操作:
git rebase --abort
这将中止rebase并将你的HEAD
恢复到rebase之前的状态。
我认为可以选择使用git rebase
还原单个补丁。请参阅git rebase文档中的可能选项。
git rebase --help
GIT-REBASE(1) Git Manual GIT-REBASE(1) NAME git-rebase - Forward-port local commits to the updated upstream head SYNOPSIS git rebase [-i | --interactive] [options] [--onto <newbase>] [<upstream>] [<branch>] git rebase [-i | --interactive] [options] --onto <newbase> --root [<branch>] git rebase --continue | --skip | --abort In case of conflict, git rebase will stop at the first problematic commit and leave conflict markers in the tree. You can use git diff to locate the markers (<<<<<<) and make edits to resolve the conflict. For each file you edit, you need to tell git that the conflict has been resolved, typically this would be done with git add <filename> After resolving the conflict manually and updating the index with the desired resolution, you can continue the rebasing process with git rebase --continue Alternatively, you can undo the git rebase with git rebase --abort
如果有帮助,请检查此链接。
http://arigrant.com/blog/2014/5/4/git-rebase-stepping-forward-and-back
答案 2 :(得分:0)
git rebase --abort
并重做rebase。