2012-07-30 52 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