2010-12-22 29 views
0

我想要導出,簽出或從索引,HEAD或任何其他提交到特定文件夾的任何其他內容,這怎麼可能?類似的問題已經被問:GIT:簽出到「真的」特定文件夾

GIT: Checkout to a specific folder

Do a "git export" (like "svn export")?

但提出的方案的問題在於,它們保存了相對路徑。因此,例如,如果我使用上述方法將文件nbapp/editblog.php檢出到文件夾temp,那麼該文件將在temp/nbapp/editblog.php中檢出!

無論如何直接結賬到'臨時'?

此外,另一個重要的事情是能夠檢查HEAD或任何其他提交。結帳索引(允許使用--prefix選項簽出到特定文件夾,而正常結帳不允許)只檢出索引。如果我想檢查某個文件從某個提交到某個文件夾怎麼辦? 類似的問題已經alread

回答

1

git cat-file blob revision:path > path/where/to/save/file

+0

值得注意的是,`cat-file`將不會執行,'autocrlf`或其他特定工作樹會被破壞。 – 2010-12-22 09:38:31

1

隨着git archive,您可以包括任何你不想在treeish的規格複製路徑元素。例如。

git archive --prefix=temp/ HEAD:nbapp editblog.php | tar x 

創建temp/editblog.php,而

git archive --prefix=temp/ HEAD nbapp/editblog.php | tar x 

創建temp/nbapp/editblog.php