Git 重置当前 rebase
Git reset current rebase
我一直在做一个变基。我一直在努力解决一些冲突,但我最终走错了方向,现在我只想重新开始解决这些冲突。
我想重置变基,这样我仍然会变基当前提交,但工作副本已重置为提交最初被标记为冲突时的状态。
如何重置当前提交的变基?
如果你在你的变基之间,你可以做
git rebase --abort
如果您有多个提交在两个分支上编辑相同的文件,并且在变基过程中决定要保留一些工作,而不是放弃所有已经做出的更改 (git rebase --abort
) 那么我想您需要查看目录 .git/rebase-apply
并检查 patch
文件。它包含在变基期间所做的所有更改。您将在执行 git rebase --abort
后手动应用此补丁。
如果您只想为特定文件重做合并,您需要做的就是:
git checkout -m <file>
如果你想重做整个提交,我是这样做的(可能有更好的方法):
- 变基过程中发生冲突
- 我搞砸了冲突解决
I 运行 a git status
从 Git 2.0.0 开始,给我这样的东西(只有当你进行交互式变基):
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
- 我复制 rebase 当前正在执行的命令行:
pick db2511c Modify file
- I 运行
git rebase --edit-todo
并将该行粘贴到文件顶部
- 我运行
git rebase --skip
首先,收拾残局:
git reset --hard HEAD
然后,挑选您当前正在变基的提交:
git cherry-pick -n `git rev-parse REBASE_HEAD`
就是这样。与往常一样,您将能够在解决冲突后继续变基。
我一直在做一个变基。我一直在努力解决一些冲突,但我最终走错了方向,现在我只想重新开始解决这些冲突。
我想重置变基,这样我仍然会变基当前提交,但工作副本已重置为提交最初被标记为冲突时的状态。
如何重置当前提交的变基?
如果你在你的变基之间,你可以做
git rebase --abort
如果您有多个提交在两个分支上编辑相同的文件,并且在变基过程中决定要保留一些工作,而不是放弃所有已经做出的更改 (git rebase --abort
) 那么我想您需要查看目录 .git/rebase-apply
并检查 patch
文件。它包含在变基期间所做的所有更改。您将在执行 git rebase --abort
后手动应用此补丁。
如果您只想为特定文件重做合并,您需要做的就是:
git checkout -m <file>
如果你想重做整个提交,我是这样做的(可能有更好的方法):
- 变基过程中发生冲突
- 我搞砸了冲突解决
I 运行 a
git status
从 Git 2.0.0 开始,给我这样的东西(只有当你进行交互式变基):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
- 我复制 rebase 当前正在执行的命令行:
pick db2511c Modify file
- I 运行
git rebase --edit-todo
并将该行粘贴到文件顶部 - 我运行
git rebase --skip
首先,收拾残局:
git reset --hard HEAD
然后,挑选您当前正在变基的提交:
git cherry-pick -n `git rev-parse REBASE_HEAD`
就是这样。与往常一样,您将能够在解决冲突后继续变基。