删除提交git

时间:2014-01-30 06:59:19

标签: git git-rebase

我以某种方式做到了这一点:

A -- B -- C (init)
         /
        Z   (master)

我无法弄清楚如何删除Z提交或将其“重新绑定”为A的父级。这是否可能?

3 个答案:

答案 0 :(得分:2)

如果在Z中没有任何用处,您可以使用reset --hard

删除它
git reset --hard init (if init is a branch)

git reset --hard HEAD^ (moves one commit back)

如果您需要尽可能早地保留Z(首先可能是在A之后),那么您可以进行交互式变换

git rebase -i <sha of A>

并重新订购de提交为

Z
B
C

(A未显示,因为它是根提交)

答案 1 :(得分:1)

为什么需要删除它?只需恢复该提交。

git revert <SHA-ID>

否则,你想要核实提交。硬重置为HEAD-1会将您的工作副本设置为错误提交之前的提交状态。

git reset --hard HEAD~1 

答案 2 :(得分:1)

要将Z commit作为A的父级,请尝试以下方法:

git checkout -b b_branch {B hash}
git checkout master
git rebase b_branch
git checkout -b a_branch {A hash}
git rebase master