2012-07-30 23 views
1

我只是做了一个提交,并意外地留在了我应该删除的某些文件中。我怎样才能在不丢失任何工作的情况下撤消这个提交?我想撤消该提交,进入并删除2个文件,然后重新提交所有更改。如何返回上次提交而不失去工作?

谢谢!

+0

不会丢失任何工作? 我不知道是否可能^^但它是个好问题。 对我来说,你创建了其他的git克隆文件夹,并在上次提交时恢复... – 2012-07-30 13:18:30

回答

1

您不需要撤消任何操作。只要你还没有推承诺:

git commit -a --amend -C HEAD 

会修改你刚才所作的承诺,保持相同的提交信息,提交任何更新或删除(但不包括未跟踪新)文件。


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

是的,如果你想成为超级安全的,你可以git rm文件并删除-a标志:

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

好的真棒,所以如果我删除文件,然后运行,它会将它添加到提交? – fancy 2012-07-30 13:18:18

+0

谢谢@MattBall – fancy 2012-07-30 13:20:33

1

首先藏匿你目前的工作

git的藏匿

然后开始交互式变形:

git的变基-i HEAD〜5

你会看到你提交的清单,如:

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

变化 '捡' 到 'E' 进入编辑模式你提交的如:

e 8e09710 Added file manager UI 

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

然后

git的承诺--amend

,并最终

git的变基--continue

去最后一次提交和

混帐藏匿申请

来恢复当前的工作进度

+0

如果您从提交发生的5次提交中删除文件,会发生什么情况?它在未来的所有提交中被删除? – fancy 2012-07-30 14:40:05

+0

如果在以后的提交中删除并不修改该文件,那么是的。如果稍后更改它,则必须解决冲突。 – tomieq 2012-07-31 06:12:43

相关问题