我以某种方式做到了这一点:
A -- B -- C (init)
/
Z (master)
我无法弄清楚如何删除Z提交或将其“重新绑定”为A的父级。这是否可能?
答案 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