這裏要研究的問題是,如果我們在之前的某一個提交中刪除了一個文件,如何使用git將此文件恢復出來。
首先我們要做的是找到當時刪除的這個文件對應的提交。比較簡便的方法是使用一些圖形化的Git軟件,可以直接瀏覽找到對應的提交。這些軟件包括SourceTree,Github Desktop等。純命令行的環境可以使用如下的命令:
git log --diff-filter=D --summary
在找到對應的提交後,使用如下命令:
git checkout $commit~1 path/to/file.ext
注意一下,這裏的$commit
指的是對應的commit id。後面的~n
是git的一種語法,表明追溯某個提交的第n
個祖先。詳情可以參考Git Treeishes Considered Awesome。那這裏的意思就是檢出刪除這個文件的提交的上一個提交(屆時那個文件還存在)中的對應文件。