考虑以下提交历史记录:
* 627f412 (HEAD -> master) final commit
* 1425cf8 added some file
* 2c8bb78 initial commit
在这些提交期间,不会推送存储库。
第二次提交1425cf8是不必要的提交。我想完全删除该提交。
因此,新日志将如下所示:
* 627f412 (HEAD -> master) final commit
* 2c8bb78 initial commit
我如何实现这一目标?
在这种情况下,git reset --hard HEAD~1
是正确的做法吗?
答案 0 :(得分:2)
git reset - hard HEAD~1在这种情况下做的正确吗?
否:git rebase -i 2c8bb78
是。
您可以在交互式rebase会话中删除额外提交。 (如果你想完全放弃1425cf8引入的内容)
或者你可以压缩两个提交。
为此,在交互式会话中(参见" Git Tools - Rewriting History"):
s
请注意,最终结果将不为627f412:新提交将具有不同的SHA1,因为其内容将有所不同。
答案 1 :(得分:0)
您可以将HEAD重置(--hard
!)到2c8bb78
,然后提交更改。
或者在2c8bb78上重新定义并压缩到另外两个提交(627f412
和1425cf8
)。
使用reset --hard
,您可能会失去修改。