我有一个使用GIT作为存储库的项目中的文件。对于该文件,我需要找出该文件属于哪个版本。该文件在存储库外部是独立的(未跟踪),因此标准的git命令不起作用。
有没有办法根据文件的文件名及内容来确定此文件所属的修订版本?
答案 0 :(得分:16)
我认为没有一次性命令可以做到这一点 - git的对象模型使得从blob返回到可能引用它的提交非常费力。不过,这是一种做法。首先,找到git将使用的文件的哈希值:
git hash-object foo.c
假设返回f414f31
。然后您可以使用如下脚本:
for c in $(git rev-list --all)
do
( git ls-tree -r $c | grep f414f31 ) && echo Found the blob in commit: $c
done
...显示包含该blob的所有提交。如果您想知道这些提交所在的分支,您可以这样做:
git branch -a --contains 1a2b3c4d