GIT: determine revision based on a file

前端 未结 1 1029
灰色年华
灰色年华 2020-12-19 04:09

I have a file from a project that uses GIT as repository. For that file I need to find out to which revision this file belongs to. The file is stand-alone outside of an repo

相关标签:
1条回答
  • 2020-12-19 04:50

    I don't think there's a one-shot command to do this - git's object model makes it quite laborious to work back from a blob to commits that might reference it. Here's one way of doing it, though. First of all, find the hash of the file that git would use, with:

    git hash-object foo.c
    

    Suppose that returns f414f31. Then you can use a script like the following:

    for c in $(git rev-list --all)
    do
       ( git ls-tree -r $c | grep f414f31 ) && echo Found the blob in commit: $c
    done
    

    ... to show all the commits that contain that blob. If you want to know which branches those commits are on, you can do:

    git branch -a --contains 1a2b3c4d
    
    0 讨论(0)
提交回复
热议问题