【发布时间】:2022-01-12 04:03:21
【问题描述】:
典型的问题是如何删除最新的提交。这很容易: git reset --hard HEAD~1
但是...我不希望工作目录被新的头内容覆盖。
如果您重置头,工作目录将恢复到该头提交时的 repo 内容。我想保留我更改的文件。
例如我已经更改了三个文件,但只想提交两个。我不小心把这三个都犯了。如果我重置头部,不仅会删除错误提交,而且会还原所有更改的文件。我想删除最新的提交,然后只提交我打算提交的两个。这意味着我需要将更改的文件保留在工作目录中。
我认为我已经很好地解释了这个问题。或者至少我希望如此。
【问题讨论】:
-
使用软重置或混合重置,具体取决于您希望对 Git 的索引(也称为暂存区)发生什么。请参阅 Tim Beigeleisen 对
--soft变体的回答。使用--mixed/ 默认值,您将不得不再次git add文件,而不是重置/恢复一个文件。
标签: git reset git-commit git-reset