只需撤消GIt'commit'命令(不将文件恢复到之前的提交)

时间:2013-10-31 13:15:31

标签: git

我想取消上一次GIT提交,而不将文件还原到之前的提交。 即我想返回到提交前一刻的状态 - 所以我可以在提交之前看到所有新的/修改过的文件。有可能吗?

3 个答案:

答案 0 :(得分:2)

您可以使用:

git reset HEAD^

您的上次提交将被撤消,但该提交中的更改将保留在文件系统上。

答案 1 :(得分:1)

两种选择,基于你想做的事情(它并不完全清楚)。要么保持工作目录不变,又要将当前分支移回上一次提交。

使用git reset

可以轻松完成此操作
git reset HEAD~1

您还可以使用--soft选项来保持索引原样:

git reset --soft HEAD~1

如果你想让分支指向它当前指向的提交但是你想要将文件实际恢复到之前的提交版本,那么你也可以这样做。您可以使用git checkout从先前的提交中检出工作目录,而无需分离到该提交:

git checkout HEAD~1 -- .

基本上通过指定一个路径(在--之后),你告诉Git实际上没有检查提交/分支,只是检查你列出的所有文件的状态.表示与当前目录相关的所有内容(因此要检查所有内容,您应该位于存储库的根目录中。)

答案 2 :(得分:0)

我不知道你应该这样做的原因......

无论如何,一个简单的解决方案是:

  • 将整个目录复制到其他位置
  • 使用 git reset --hard commit_nb 将git历史记录重置为上一次提交
  • 将文件从副本覆盖到当前路径(注意只覆盖文件,不带 .git / 目录)