1

アプリケーションがエラー処理でそれを使用できるように、ポストコミットフックでファイルをコミット番号に変更することに取り組んでいます。

ファイルを変更するための perl スクリプトをビルドすることはできましたが、フックからコミット ID を取得する方法について疑問に思っていました。現在、私のフックは次のようになっています。

#!/bin/sh
#
# An example hook script that is called after a successful
# commit is made.
#
# To enable this hook, rename this file to "post-commit".

#: Nothing
perl -pi -e 's/[A-Za-z0-9+]$/commit-number/' ../../config/commit.git

コミット番号を、コミット ID を保持するある種の変数にしたいと思います。

編集:git rev-parse HEAD必要なものであるHEADコミットを生成することがわかりましたが、コマンドでそれを使用する方法がわかりません。

4

1 に答える 1

3

コマンドの出力は、$(...)またはbackticksを使用して文字列として使用できます`...`。したがって、スクリプトは次のようになります。

 perl -pi -e 's/[A-Za-z0-9+]$/'$( git rev-parse HEAD )/ ../../config/commit.git

また

 perl -pi -e 's/[A-Za-z0-9+]$/'` git rev-parse HEAD `/ ../../config/commit.git

(ネストが良く、読みやすいので、最初の方が好きです。また、Stackexchangeで入力しやすいです。)

ちなみに、正規表現は正しいですか?これで、英数字またはの場合は最後の文字が+最後のコミットIDに置き換えられます。多分?+の後にあるべき]ですか?(そして、s/[a-f0-9]+/git-commit-IDのみを一致させたい場合に使用できます-大文字はなく、後には何もありませんf。)

于 2011-02-22T20:09:14.533 に答える