我一直在做一次改变。我已经努力解决一些冲突,但我最终走错了方向,现在我只想重新开始解决这些冲突。
我想重置rebase,这样我仍然可以重新设置当前提交,但工作副本已经重置为提交时首先标记了冲突。
如何在当前提交中重置rebase?
答案 0 :(得分:6)
如果你在你的rebase之间,你可以做
git rebase --abort
答案 1 :(得分:6)
如果您只想重做特定文件的合并,您只需要:
git checkout -m <file>
如果你想重做整个提交,我就是这样做的(这可能有更好的方法):
我运行git status
,从Git 2.0.0开始,给我这样的东西(只有在你做一个交互式的rebase 时):
interactive rebase in progress; onto 14ed389
Last command done (1 command done):
pick db2511c Modify file
Next command to do (1 remaining command):
pick d1c2037 Modify file one more time
(use "git rebase --edit-todo" to view and edit)
You are currently rebasing branch 'other' on '14ed389'.
(fix conflicts and then run "git rebase --continue")
(use "git rebase --skip" to skip this patch)
(use "git rebase --abort" to check out the original branch)
Unmerged paths:
(use "git reset HEAD <file>..." to unstage)
(use "git add <file>..." to mark resolution)
both modified: file.txt
pick db2511c Modify file
git rebase --edit-todo
并将该行粘贴到文件顶部git rebase --skip
答案 2 :(得分:0)
如果您有多个提交在两个分支上编辑相同的文件,并且在变基期间决定要保留一些工作,而不是删除已经进行的所有更改(git rebase --abort
),那么我想您需要查看目录.git/rebase-apply
并检查patch
文件。它包含在变基期间所做的所有更改。您在执行git rebase --abort
后手动应用此修补程序。
答案 3 :(得分:0)
首先,清除混乱:
git reset --hard HEAD
然后,选择您当前正在重新确定的提交:
git cherry-pick -n `git show REBASE_HEAD --pretty='format:%H' --no-patch`
就是这样。像往常一样,您将能够在解决冲突后继续进行重新设置。