2011-04-07 112 views
27

我不小心做了git un-remove commit之前?

git rm filename.txt -f

現在如果我做了git commit -m '',它會犯這個刪除。如何在執行git commit之前將其刪除?

+0

我當然希望你在空的消息犯的習慣不是... – Cascabel 2011-04-07 20:28:01

+0

這是令人尷尬的,但是是...我不傾向於這樣做,當我使用的顛覆。但幸運的是,git的默認提交問我要留言 – John 2011-04-07 21:00:02

+2

呀,我推薦的做法是,僅運行'git的commit'(無參數),並讓它打開編輯器,並沿輕移你。 – Cascabel 2011-04-07 21:10:32

回答

52

從目前獲得的版本提交(HEAD)到兩個指標(臨時區域,你即將提交)和工作樹:

git checkout HEAD filename.txt 

請注意,這不只是對於「unremoval」 - 這是從讓你回版本提交,您是否已經通過改變一個行或刪除整個文件修改它。

此外,如果別人發現這個尋找一個稍微不同的答案,如果你想從指數返回到工作樹中的版本,你可以使用

git checkout filename.txt 

這是很方便的時候您管理階段一切爲了一個承諾,然後做一些愚蠢的事(比如刪除文件) - 您可以通過從索引中恢復保存自己。

+0

+1特別是對於提的是,這也是階段文件 - 我認爲它會導致這種混亂(上SO反正)的人通常描述'git的結帳的效果時,沒有提到這一點 - ' – 2011-04-07 20:40:27

+0

@馬克:嗯,是的,這可能會讓你大吃一驚。它更有意義,如果你認爲該指數作爲工作的樹,所有操作的存儲庫之間的坐着,不只是工作樹 - >首頁 - >提交。 – Cascabel 2011-04-07 20:42:43

+0

你是男人! – 2016-07-13 08:01:07