You may use git-ls-tree
to see what the SHA-1 id of a given path was during a given commit:
$ git ls-tree released-1.2.3 foo
160000 commit c0f065504bb0e8cfa2b107e975bb9dc5a34b0398 foo
(My first thought was git show released-1.2.3 foo
, but that fails with "fatal: bad object".)
Since you are scripting the output, you will probably want to get just the SHA-1 id by itself, e.g.:
$ git ls-tree released-1.2.3 foo | awk '{print $3}'
c0f065504bb0e8cfa2b107e975bb9dc5a34b0398
Also: When writing scripts around git, try to stick to the plumbing commands, as described in the manual. They have a more stable interface, while the more familiar “porcelain” commands will possibly change in incompatible ways.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…