如何在不丢失工作的情况下回到最后一次提交?

时间:2012-07-30 13:16:06

标签: git

我刚做了一个提交,不小心留下了一些我应该删除的文件。如何在不丢失任何工作的情况下撤消此提交?我想撤消该提交,进入并删除2个文件,然后重新发送所有更改。

谢谢!

2 个答案:

答案 0 :(得分:1)

您无需撤消任何内容。只要你没有推送提交:

git commit -a --amend -C HEAD

将修改您刚刚提交的提交,保留相同的提交消息,提交任何更新或删除(但不是未跟踪的新文件)文件。


  

所以,如果我删除文件,然后运行它将它添加到提交?

是的,如果您想要超级安全,可以git rm文件并删除-a标记:

git rm files/to/delete
git commit --amend -C HEAD

答案 1 :(得分:1)

首先隐藏您当前的作品

  

git stash

然后启动交互式rebase:

  

git rebase -i HEAD~5

您将看到您的提交列表,例如:

pick ff9c256 Added file manager logic
pick 8e09710 Added file manager UI

将'pick'更改为'e'进入提交的编辑模式,例如:

e 8e09710 Added file manager UI

然后在提交中添加/删除文件,编辑要在提交中更改的文件,

然后

  

git commit --amend

最后

  

git rebase - 继续

转到最后一次提交和

  

git stash apply

恢复当前的工作进度