我有一个看起来像这样的分支
---A-----------B
\
\
C (Detached HEAD)
我通过这个过程得到了它:
git checkout branch
git checkout HEAD~
git commit -m "C"
我希望C
覆盖B
(弃掉B中的所有更改)
最好不要合并temp分支,因为我希望分支图看起来尽可能简单
答案 0 :(得分:3)
强制删除branch
并在C
提交上创建分支。如果branch在任何远程存储库中,请强制推送。
如果您可以重复提交(即您在某处保存了差异),则可以将分支的HEAD
重置为HEAD~
,然后进行提交。
答案 1 :(得分:0)
git checkout <C>
git branch -D branch
git checkout -b branch
您的图表将变为:
---A-----C <== branch
\
\---B
如果B已经在远程存储库中,请使用“git push -f”强制推送。 B将来会被垃圾收集。
答案 2 :(得分:0)
git checkout sha1ofcommittokeep
git push --force-with-lease origin HEAD:branchtooverwrite