2011-06-20 18 views
1

在GIT工作回購中,我使用命令rm -rf刪除了幾個文件,而不是git rm,當我試圖從服務器(裸回購)中拉/取文件不可見時。我如何將這些文件恢復?如何帶回已移除的文件

回答

2

恢復到先前的提交。這將重置爲上次提交狀態:

git reset --hard HEAD 

請注意......如果您有其他更改...請確保您先存儲它們!

git stash 

這裏是另一篇文章中所採取的選項,可以幫助你還有:

git checkout abcde file/to/restore 

其中ABCDE是提交#。您可以使用:

git log 

獲取提交日誌。

Reset or revert a specific file to a specific revision using Git?

+1

如果您可以在沒有硬重置的情況下獲得相同的效果,您應該。這是一個非常危險的命令。 – wilhelmtell

+0

感謝重置 - 硬頭帶回文件,重置 - 哈哈是危險的,你可以請解釋更多? – maestromani

+0

是的。它將源代碼管理下的所有事件恢復到上次提交狀態。這意味着如果你在一個提交中改變了文件a,b,c和d,但你只想恢復一個(你不小心刪除的),使用reset --hard HEAD會讓你回到每個文件的狀態(全部4個),然後再做最後一次提交。你本質上是「跳回」一個提交。 –

3

我建議git checkout path/to/file.ext如果只想恢復單個文件(或做幾次了幾個文件)。使用git reset --hard HEAD將會恢復所有文件,但它也將清除自上次提交以來所做的任何其他更改,您可能想保留這些更改。

+0

感謝重置 - hard HEAD帶回了文件 – maestromani

0

始終檢查在有疑問的

git status 

當輸出。輸出結果會告訴你如何得到回填。

這包括刪除的文件和添加到索引的文件/更改的說明。

+0

您是正確的狀態顯示如何取回,謝謝你的信息。 – maestromani

相關問題