如果你想将提交移动到暂存区域 - 那就是取消它,并将其中的所有更改移动到暂存区域(有效地将分支置于它之前的状态)承诺) - 你怎么做的?或者这是你不能做的事情?
我知道如何做的最接近的方法是将提交中更改的所有文件复制到其他地方,在您尝试移入暂存区域的提交之前将分支重置为提交,移动将所有复制的文件重新放回存储库,然后将它们添加到临时区域。它有效,但它不是一个很好的解决方案。我希望能够做的只是撤消提交并将其更改为暂存区域。可以吗?如果是这样,怎么样?
答案 0 :(得分:197)
git reset --soft HEAD^
这会将您的索引重置为HEAD^
(之前的提交),但会将更改保留在暂存区域中。
handy diagrams文档中有一些git-reset
如果您使用的是Windows,则可能需要使用以下格式:
git reset --soft HEAD~1
答案 1 :(得分:2)
将提交移回暂存区取决于您的最后一次提交。 如果你的最后一次提交是 repo 的第一次(或初始)提交,那么你需要执行
git update-ref -d HEAD
如果您的最后一次提交不是第一次(或初始)提交,则执行
git reset HEAD~
答案 2 :(得分:0)