我在我的代码库中有一个分支A
,其中包含10个提交。我想找到一种方法来删除所有提交,但保留当前分支中的所有更改(这样代码的状态将保持不变,但是A
中的所有提交将被删除)。目的是我现在可以查看所有更改并挑选出我想要的更改,然后在合并回主分支之前构建更好的提交消息。这种流程是否可行?
我在我的代码库中有一个分支A
,其中包含10个提交。我想找到一种方法来删除所有提交,但保留当前分支中的所有更改(这样代码的状态将保持不变,但是A
中的所有提交将被删除)。目的是我现在可以查看所有更改并挑选出我想要的更改,然后在合并回主分支之前构建更好的提交消息。这种流程是否可行?
git reset master
将会使得HEAD
和索引文件处于与master
相同的状态,但不会对工作区(例如当前状态)产生影响。
git reset commit id会将提交重置为指定的提交id。在这种情况下,您可以从git log中找到先前的提交id并还原到该提交id。
git reset --soft <commit-id>
将实现你的需求。它将把HEAD指向所需的提交ID,但不会更改工作树状态(因此不会影响文件)。使用log
命令找到A
开始的提交哈希值。
如果您想了解更多关于reset
的信息,请查看此处的文档。
--hard
,如果不使用它,会完全达到他想要的效果,即将所有修改留在他的工作文件夹中? - Lasse V. Karlsen