撤销当前分支上的所有提交,但保留当前状态下的所有更改。

5

我在我的代码库中有一个分支A,其中包含10个提交。我想找到一种方法来删除所有提交,但保留当前分支中的所有更改(这样代码的状态将保持不变,但是A中的所有提交将被删除)。目的是我现在可以查看所有更改并挑选出我想要的更改,然后在合并回主分支之前构建更好的提交消息。这种流程是否可行?

5个回答

10

git reset master将会使得HEAD和索引文件处于与master相同的状态,但不会对工作区(例如当前状态)产生影响。


1

git reset commit id会将提交重置为指定的提交id。在这种情况下,您可以从git log中找到先前的提交id并还原到该提交id。


为什么要使用 --hard,如果不使用它,会完全达到他想要的效果,即将所有修改留在他的工作文件夹中? - Lasse V. Karlsen

1
"

git reset --soft <commit-id>将实现你的需求。它将把HEAD指向所需的提交ID,但不会更改工作树状态(因此不会影响文件)。使用log命令找到A开始的提交哈希值。

如果您想了解更多关于reset的信息,请查看此处的文档。

"

0
将您的提交压缩成一个单元可能会有所帮助。请看这里

0

你必须将所有的提交压缩成一个,并在此之后执行重置。 请查看this


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接