0

リモートの --bare リポジトリにフックを作成しようとしています。これは、送信先のブランチに応じて、ローカルの git から送信したソース コードを別のフォルダーにコピーします。ローカルにマスター、開発、リリースの 3 つのブランチがあるため、リモートに各ブランチのソース コードを含む 3 つのフォルダーが必要です。私はそれを使用して見つけました:

git rev-parse --abbrev-ref HEAD

一連の if 条件と組み合わせると、うまくいく可能性があります。唯一の問題は、送信先のブランチが何であれ、リモートで HEAD が同じままであることです。フックで使用できるコードがあるので、特定のブランチに送信していることがわかりますか? または、これを行うための他の方法はありますか?ありがとう!

4

1 に答える 1

1

1 つの裸のレポには、3 つのブランチすべてが含まれます。このような git 修飾子を使用して、3 つの個別のディレクトリを各ブランチの内容に合わせて更新できます。

git --work-tree=/some/project/dir/branch1 --git-dir=/path/to/bare/repo checkout branch1 -- .

これらのオプションを指定しないようにするために、対応する環境変数を設定できます。

GIT_WORK_TREE
GIT_DIR

このようにして、1 つの裸のリポジトリと、ブランチがプッシュされたときに更新される 3 つの個別のディレクトリを保持できます。フックで提供される引数が何であるかを覚えておいてください。まずは支店名です。

于 2012-07-05T17:51:13.327 に答える