2011-10-11 209 views
1

我想知道如何能夠立即恢復目錄中的所有文件whit git checkout?git checkout刪除目錄

您可以使用目錄路徑,以將其添加或刪除所有文件了,就象

git add /path/to/dir/ 

但是當我做

git checkout /path/to/dir/ 

我得到這樣的

error: pathspec '/path/to/dir/' did not match any file(s) known to git. 

所以我必須手動添加每個文件,有沒有更簡單的方法?

+0

我想你需要澄清你的意思是「恢復目錄中的所有文件」。你的意思是「放棄對該目錄中文件的所有未提交的更改」?另外請注意,你不應該在'git checkout'中使用絕對路徑 - 它應該是'path/to/dir'而不是'/ path/to/dir',路徑相對於你當前的目錄。 –

+0

它可能是絕對路徑嗎?我假設'git checkout'與相對於工作樹的路徑一起工作。 (例如,工作樹中的'git checkout path/to/dir') – Boldewyn

+0

@Boldewyn:如果你使用絕對路徑,即'fatal:'/ path/to/dir'在倉庫之外,你會得到一個不同的錯誤如果路徑導致存儲庫中的目錄。我懷疑這是一個不正確的相對路徑問題.... –

回答

0

顯然你可以做到這一點:watch here for an example。 命令

git checkout <treeish> -- /path/to/dir 

應該工作。在你的情況下,你不指定一個分支,它應該將目錄的狀態恢復到最後的提交。

也許你忘記了git checkout命令後的--
我甚至不知道,它可以在不--時不處理分支使用