1

キャッシュバスティングの目的でgitハッシュを使用したいと思います。

私のデプロイスクリプトはgitで特定のファイルを検索し、ファイルが変更された最後のコミットからのハッシュの短いバージョンを使用します。これは、各ファイルのキャッシュ無効化文字列が必要な場合にのみ変更されることを意味します。

これまでのところ、次のコマンドがあります。これは近いですが、完全には正しくありません。

git log -n 1 --abbrev-commit --pretty=oneline htdocs/js/sample.js

これは次を返します:

21b1991 Commit message here

その文字列をcommitハッシュ用に解析することはできますが、可能であればそれは行いません。

gitを返したい:

21b1991

コマンドの発行時にgitが別の長さのハッシュを返し始めたら、ソリューションが機能し続けることを確かに望んでいます。また、完全なハッシュを使用することにも反対ではありませんが、それが必要になるとは思いません。

デプロイはgitベースで、Ubuntu12.04TLSシステムで行われます。

提案?

4

3 に答える 3

6

--pretty=format:%h代わりに試してください--abbrev-commit --pretty=oneline

例えば

git log -n 1 --pretty=format:%h htdocs/js/sample.js
于 2013-02-15T17:04:13.770 に答える
0

これにはawkを使用できます。

git log -n 1 --abbrev-commit --pretty=oneline htdocs/js/sample.js | awk '{print $1}'
于 2013-02-15T17:01:19.867 に答える
0

ショートコミットハッシュは、履歴にあるコミットの数に応じてサイズが異なる可能性があることを覚えておく必要があります。コードでフルハッシュを使用するために支払う価格は低く、フルハッシュを使用すると常に保証されます。正しいファイルを参照しています。

短いハッシュは、プログラムコードが数バイトを節約するために使用する必要のあるものではなく、頭の悪い開発者にとって便利なものだと考えています。

于 2013-02-15T20:47:05.287 に答える