2016-08-25 6 views
1

実行中のサーバがあり、gitインスタンスがあります。ユーザーがサーバーにgit pushを実行するたびにスクリプトを実行したい。私はスクリプトを実行してからgit pushを続行したい。 回避策はありますか?git pushのたびにスクリプトを実行します。

答えて

0

あなたはgitのフックになります。

8.3 Customizing Git - Git Hooks

と、この技術に関する別のサイト:

githooks.com

+0

サーバー側のgitフックでこれをどうやって行うのですか?私はアクションがサーバー側で起動されるようにします –

2

私はあなたがザ・スクリプトの前に実行したい場合はわからないが押すか後で。それでは、プッシュプッシュに対する私の答えがここにあります。しかし、ポストプッシュ(プッシュ後)が必要な場合は、それに応じてpre-pushフックを変更して、プッシュが正常にプッシュされていることを確認してからプッシュポストを実行する必要があります。

@Travisで提案されているように、git hooksがあなたが探しているものです。したがって、スクリプトプレプッシュを実行するには、pre-pushファイルを.git/hooksに作成する必要があります。だから、この場合はコードの束を事前投稿スクリプトファイル.git/hooks/pre-pushに入れて保存してください。次に、chmod +x .git/hooks/pre-pushで実行可能にします。これで正常に終了したら、pushコマンドを実行するたびにスクリプトが実行されるのを見ることができます。

PS:私はこの全体をテストしていませんが、このように動作することが期待されています。要するに

は、あなたの(Linuxユーザ)がプロジェクトディレクトリにある

vim .git/hooks/pre-push # then add your code and save the file 
         # Also put the shebang on top to identify the interpreter 
chmod +x .git/hooks/pre-push # make it executable 
+0

注:これは "プレプッシュ"で動作しますが、 "ポストプッシュ"のためには機能しません –

+0

@ mchen.jaポストプッシュ用にスクリプト名を 'プッシュ ' – MaNKuR

+0

どのバージョンのgitで正常にテストできましたか?私はgit 2.14.2(macOS上で動作しています)で動作させることができませんでした。 –

0

を想定しますので、私はあなたが公共のGitHubのではなくGitHubの企業に言及されていると仮定しています。このGitHubのをタグ付けしました。

GitHubのサーバー上でスクリプトを実行することはできませんが、これは明らかに大きな脆弱性ですが、別のサーバーでスクリプトを起動するためのWebフックを設定できるためです。

基本的に誰かがプッシュを行うたびに、特定のURLにプッシュに関するデータが送信されます。これでスクリプトを起動できます。ウェブフックの詳細については、GitHub API docsを参照してください。

+0

herokuのようなgitインターフェースを提供するdokku(ドッカー)のような他のサーバーでgitを使うのはどうですか? ? –

関連する問題