2

コミット後のフックには次の設定があります。

.git/hooks/push-to-staging 内

#!/bin/sh

while read oldrev newrev refname
do
  branch=$(git rev-parse --symbolic --abbrev-ref $refname)
  git push -f myapp $branch:master && heroku run rake db:migrate -a my-app && heroku restart -a my-app
done

chmod +x push-to-staging を確実に実行しました。

ただし、ブランチのいずれかにプッシュすると、プッシュは明らかにうまくいきます...しかし、それだけです。ステージング サーバーへのプッシュが行われていません。

第二に、このポスト コミット フックを私のレポの一部にする方法があるかどうか疑問に思っています (または、それはフックがどのように機能するはずなのでしょうか?)。私のチームの全員に、基本的にこの設定をしてもらいたいだけです。

4

1 に答える 1

0

Git: にはそのようなフックはありませんpush-to-staging。リポジトリのディレクトリで利用可能なフックを確認できhooksます。たとえば、私のシステムでは次のようになります。

applypatch-msg
commit-msg
post-commit
post-receive
post-update
pre-applypatch
pre-commit
prepare-commit-msg
pre-rebase
update

post-commitあなたの場合、フックを探しています。スクリプトの名前を に変更するか、スクリプトを指すpost-commitシンボリック リンクを作成します。post-commit

フックをリポジトリの一部にすることはできません。つまり、フックを自動的に有効にして、ブランチ オペレーションを通じて伝達することはできません。それが可能であれば、リポジトリのクローンを作成するときに大きなセキュリティ リスクになります。代わりにできることは、フックスクリプトを簡単に有効にすることです。その例は、次の他の回答で確認できます。

リポジトリへの git フックの配置

.git/hooks のフックへの変更の追跡

于 2013-06-27T19:53:36.670 に答える