2

代わりに git rev-parse を使用しますが、次のコマンドで予想とは異なるコミット ID が返される理由が気になります。

私が書いているいくつかのスクリプトで、HEAD から sha1 を取得したかったのです。私はこれのために show-ref と rev-parse をいじっていました。興味深いのは、HEAD で show-ref を使用すると、実際の HEAD とはまったく異なる sha1 が表示されることです。git rev-parse を使用すると、この問題は発生しません。次の点を考慮してください。

> git show-ref --hash -- HEAD
40f3fb3d84b7c9857cadb581b901e3cc20ed1f24
> git rev-parse HEAD
a54b2714e6052ba063ea45924610e2cf0b6e5750

上記の 2 つのステートメントは同じコミット ID を返すようです。なぜ違いがあるのですか?

4

1 に答える 1

1

つまり、誰かが実際に HEAD という名前の削除ブランチをリモートにプッシュし、show-ref を実行したときに別のコミット ID を取得していたことが判明しました。show-ref をよく見ると、実際にパターンを要求しており、origin/HEAD と一致しています。

于 2013-06-26T04:15:56.907 に答える