我有3次提交:
* d868098 Three
* 865eb70 Two
* 6dd085d One
我想直接将“三个”移动到“一个”上:
* 865eb70 Two
|
| * d868098 Three
|/
* 6dd085d One
但是,我正在尝试的任何方法都没有起作用。例如,git rebase --onto 6dd0 865e d868
只是后退HEAD而不会重新设置任何基准。我如何使用rebase
来做到这一点?
更新:好的,git rebase --onto 6dd0 865e d868
确实有效。之前这对我不起作用,因为我在只有空提交的测试存储库上尝试了此操作。一旦创建了有意义的提交,一切就会按预期进行。将来我会避免空提交进行测试!
答案 0 :(得分:1)
为此,您至少需要2个分支。
我假设您位于master
的{{1}}分支上。
* d868098 Three
(从git reset --hard 865eb70
中删除* d868098 Three
)master
(创建并移至新分支)git checkout -b three_brach
git checkout 6dd085d
(将git cherry-pick d868098
选择到* d868098 Three
分支)现在树在下面
three_branch