如何删除提交,但保持后续提交完好无损?
在这种情况下,假设我想摆脱b
但保留c
。
$ git init
$ for i in a b c; do date >$i; git add $i; git commit -m add-$i;done
$ git log
commit 39c976fa711b38d4c8161af9b6b4a9a91489d079
add-c
commit 2913863926f8c3a3898a2763fe4384b6ca7227a0
add-b
commit ff591ea43a84069e5effd28125b56243dc264336
add-a
执行reset --hard
将摆脱b
,但也会摆脱c
。
git reset --hard ff591e
HEAD is now at ff591ea add-a
如何在保持add-c
提交完整的同时执行此操作?
答案 0 :(得分:1)
为了保持一切顺利(是提交的sha1),你会做git revert b
,其中b是b的sha1。这增加了另一个提交,否定了b
从历史记录git rebase -i b^
再次,其中b是提交的sha1
然后删除行保存并关闭
如果有其他人在同一个仓库工作,我会建议第一种方式