我离开主分支去签出一个特定的提交,而忘记返回,导致我的后续提交成为签出提交的一部分,而不是主分支的一部分。git reflog
f0420e4 HEAD@{1}: commit: :brain: `redesign` attributes as single number -> Attribute object encapsulating .base .modifier
cb4a198 HEAD@{2}: commit: :brain: `redesign` Item Rarity type: string literals -> enum
1d61b75 HEAD@{3}: checkout: moving from main to 1d61b75
70c9cf5 (HEAD -> main, origin/main) HEAD@{4}: reset: moving to 70c9cf5ab06b1838b1b7c4b8278728bedbaecbf5
在main
中,我没有看到最近的两个redesign
提交-它们似乎只存在于1d61b75
提交上。我如何将它们移动到main
分支上,而在我的git历史中没有merge
寄存器?
您也可以使用rebase:
git rebase HEAD~2 HEAD --onto main
这样你就可以应用main
上的最后2次提交(main
分支不会移动,你需要在事实之后这样做):
git branch -f main # set main over here
git checkout main
回到main
,为您需要的提交做一个选择:
$ git checkout main
$ git cherry-pick cb4a198 f0420e4
当然会有冲突,但如果有,只要修复它们并执行git cherry-pick --continue
。