2011-03-15 53 views
2

我刪除了一些錯誤的文件,並希望恢復它們。請注意,我從來沒有將存儲庫推送到某個遠程,因爲它只是一個本地存儲庫。「svn up」相當於git

modified: .svn/entries 
#  deleted: JavaTVServiceXlet.java 
#  deleted: TestSIGetProgramSchedule.java 
#  deleted: TestSIRetriveAll.java 
#  deleted: XletTestSIGetProgramSchedule.java 
#  deleted: XletTestSIRetriveAll.java 
# 

回答

5

只需使用git checkout -- [file]即可恢復存儲庫中的最新版本。 如果您根本沒有其他更改您可以git reset --hard HEAD將所有內容(甚至修改過的文件)展開到最後一次本地簽入。

+0

注意'git reset --hard'因爲有** no **如果你沒有按下就撤消它,通常做一個軟重置(默認)就像你可以查看改變了什麼一樣有用並針對每個文件採取相應措施。 – 2011-03-15 19:46:15

+0

而不是'git checkout - '? – 2011-03-15 19:46:57

+2

@Andrew Marshall:如果''是明確的,你可以省略'--',但總是使用'--'是一種很好的做法。 – 2011-03-15 19:53:02

5

您可以用恢復單個文件:

git checkout -- JavaTVServiceXlet.java 

...或者來還原已刪除了所有的文件,你可以這樣做:

git ls-files -z --deleted | xargs -0 -n 1 git checkout -- 

後者命令生成刪除的文件列表,用NUL字節分隔,以及到xargs -0 -n 1的管道,該管道將爲該列表中的每個文件運行git checkout -- <FILENAME>

0

您可以像本傑克遜建議的那樣使用git checkout <file>,也可以使用git reset -- <file>。任何一個人都應該做你想做的事。

正如eLobato所建議的那樣,檢入和從遠端拉出過於複雜且不必要,因爲所有必要的信息都已存在於本地計算機上。