如何使用分离的HEAD提交覆盖提交?

时间:2016-10-03 11:39:52

标签: git

我有一个看起来像这样的分支

---A-----------B
    \
     \
      C (Detached HEAD)

我通过这个过程得到了它:

git checkout branch
git checkout HEAD~
git commit -m "C"

我希望C覆盖B(弃掉B中的所有更改)

最好不要合并temp分支,因为我希望分支图看起来尽可能简单

3 个答案:

答案 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