如果你想将一个提交移动到暂存区——也就是取消提交,并将其中的所有更改移动到暂存区(有效地将分支置于提交之前的状态)——你该如何做呢?还是你做不到的事?

我所知道的最接近的方法是将在提交中更改的所有文件复制到其他地方,在您试图移动到登台区域的提交之前将分支重置到提交,将所有复制的文件移回存储库,然后将它们添加到登台区域。这是可行的,但并不是一个很好的解决方案。我希望能够做的是撤消提交并将其更改移动到暂存区域。这能做到吗?如果是,怎么做?


git reset --soft HEAD^

这将把你的索引重置为HEAD^(前一次提交),但将你的更改保留在暂存区。

git-reset文档中有一些方便的图表

如果你在Windows上,你可能需要使用这种格式:

git reset --soft HEAD~1

简单的方法

提交文件到暂存区 git重置-软头^1 取消舞台(使用"git reset HEAD…"取消舞台) git reset HEAD git commands.txt 或者git重置HEAD *ds.txt

在这里, *——>所有以ds.txt结尾的文件取消暂存。

请参考下图:


将提交移回暂存区取决于上次提交。 如果您的最后一次提交是回购的第一次(或初始)提交,那么您需要执行

git update-ref -d HEAD

如果最后一次提交不是第一次(或初始)提交,则执行

git reset HEAD~