2012-07-04 51 views
4

我需要檢查一個文件是否存在於最近的提交(HEAD)。我一直這樣做git檢查文件是否存在於含SHA的HEAD上?

git cat-file -e HEAD:path/to/file 

但我意識到如果文件已被移動或重命名,這可能會有問題。有沒有辦法根據SHA檢查文件?我試過

git cat-file -e SHA 

但它似乎搜索所有提交,而不僅僅是最近的。

基於Alan Curry’s answer這似乎工作

git ls-tree -r HEAD | grep SHA 
+0

注輸出解析自己:https://github.com/git/git/blob/master/Documentation/ RelNotes/1.8.3.txt#L155-L158也很有趣:請參閱https://github.com/git/git/blob/master/Documentation/RelNotes/1.8.3.txt#L155-L158 – VonC

回答

1

你可以的git ls-tree -r HEAD