我想取消最后一次 GIT 提交,而不将文件恢复到以前的提交。即,我想返回到提交前一分钟的状态 - 这样我就可以在提交前查看所有新的/修改的文件。这是可能的?
问问题
65 次
3 回答
2
您可以使用:
git reset HEAD^
您的最后一次提交将被撤消,但该提交中的更改将保留在文件系统上。
于 2013-10-31T13:22:26.337 回答
1
两个选项,基于您想要做的事情(尚不完全清楚)。您想保持工作目录不变,但想将当前分支移回上一个提交。
这可以使用以下方法轻松完成git reset
:
git reset HEAD~1
您还可以使用该--soft
选项来保持索引不变:
git reset --soft HEAD~1
如果你想让分支指向它当前指向的提交,但你想将文件恢复到之前的提交版本,那么你也可以这样做。您可以使用git checkout
从上一次提交中签出工作目录,而无需分离到该提交:
git checkout HEAD~1 -- .
基本上通过指定一个路径(在 之后--
)你告诉Git实际上不要检查提交/分支,而只是检查你列出的所有文件的状态,其中.
意味着相对于当前目录的所有内容(所以要检查所有内容,您应该位于存储库的根目录中)。
于 2013-10-31T13:22:24.180 回答
0
我不知道你为什么要这样做...
无论如何,一个简单的解决方案是:
- 将整个目录复制到其他位置
- 使用git reset --hard commit_nb将 git 历史重置为上一次提交
- 将文件从副本覆盖到当前路径(注意只覆盖文件,不覆盖.git/目录)
于 2013-10-31T13:20:38.560 回答