問題タブ [git-post-receive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Git-受信後のチェックアウトから構成ファイルを除外します
ローカルで取り組んでいるgitプロジェクトがあります。これは、MySQLデータベース接続情報を格納する構成ファイルを含むPHPプロジェクトです。私のローカルMySQL設定はリモート設定とは異なります。
私のリモコンには、サーバー上のフォルダーにファイルをチェックアウトする受信後フックがあります。
このチェックアウトにインクルードしないように指示するにはどうすればよいですか(構成ファイルを上書きします)。これにより、リモート構成ファイルがローカルファイルに置き換えられます。ローカル構成ファイルを.gitignoreに追加しようとしましたが、うまくいかなかったようです。
チェックアウトから設定ファイルを除外する方法はありますか?
git - 以前に処理された受信後フックのGitリビジョンの処理をスキップします
「gitpush」中に追加されたすべてのリビジョンを抽出し、それぞれに対して何らかの処理(通知メールの送信など)を行うgitpost-receiveフックがあります。これは、マージする場合を除いてうまく機能します。例えば:
- branch1でいくつかのコミットを行い、次にbranch1をプッシュします。受信後フックはコミットを正しく処理します。
- branch1をbranch2にマージしてから、branch2をプッシュします。受信後フックは、マージされたすべてのコミットを2回処理します。
どうすればこれを回避できますか?以下は、処理する必要のあるコミットを抽出する受信後フックの始まりです(最後に、$ COMMITSは処理するコミットのリストを保持します)。
php - コミットごとに github から自動的にダウンロードしますか?
jQuery を使用して作成されたいくつかのプラグインがあり、サーバーにデモがあり、変更が github のマスター ブランチにコミットされるたびにデモを自動的に更新したいと考えています。
Post-Receive Hooksを使用してサーバーでバズを取得できることはわかっています。これは簡単なことですが、PHP スクリプトを取得して github からリポジトリ全体の最新バージョンをダウンロードする方法はまだわかりません。
これを行うための API はありますか、それとも圧縮されたリポジトリの常に最新バージョンへの直接リンクがあるのでしょうか?
git - EC2 が post-receive フックを介して bitbucket/github から更新をプルしないのはなぜですか?
EC2 に移行する前に、コミットを bitbucket リポジトリにプッシュし、受信後フックでそれらをサーバーにプルさせます。コミット後、URL http://mywebsite.com/update.phpが呼び出され、update.php が呼び出されます。は:
それは魔法のように機能していました。ただし、EC2 では機能していません。その理由はわかりません。
私は次のことを試しました:
sudo chmod +x update.php
これにより、update.php が実行可能になります。update.php を次のように変更しました
update.php を次のように変更しました
update.php を次のように変更しました
ssh 経由でインスタンスを使用している場合、ec2-user として「git pull」を実行できるため、パーミッションと関係があると思います。また、「git pull」は、root ユーザーの場合に機能します。
どうすれば動作させることができますか? 私はそれが許可に関係していたと思います。
アップデート
トラブルシューティングを行ったところ (ヒント @cyberx86 に感謝)、次のことがわかりました。
実行することでコマンドラインで更新フックを実行できましたが、php update.php
ルートである理由は機能しましたが、ec2 ユーザーの場合は機能しませんでした。エラーログが表示されました
エラー: .git/FETCH_HEAD を開けません: 権限が拒否されました
chmod -R 777 .git
そのため、root ユーザーとしてコマンドを実行しました。
git pull
コマンド ライン経由で更新をphp update.php
取得できるようになりましたが、post-receive フックを介して実行したり、ブラウザで url/update.php を指定したりしても機能しません。エラーログが表示されます
ホスト キーの検証に失敗しました。^M
致命的です: リモート エンドが予期せず電話を切りました
これは、ブラウザ経由でアクセスしたときにコマンドを実行するユーザーにsshキーが設定されていないため、シェルコマンドが実行されているように見えますが、リモートリポジトリがそのユーザーにプルさせていないことを意味すると思います.
@cyberx86 のアドバイスに従って、/etc/passwd でユーザーをチェックアウトしました。PHP ユーザーはいませんが、apache: という名前のユーザーがいます。apache:x:48:48:Apache:/var/www:/sbin/nologin
実行sudo -u apache php -q update.php
して、次のメッセージを受け取りました。
ディレクトリ '/var/www/.ssh' を作成できませんでした。
ホスト 'bitbucket.org (207.223.240.181)' の信頼性を確立できません。
RSA キーのフィンガープリントは編集済みです
接続を続行しますか (はい/いいえ)? はい
ホストを既知のホストのリスト (/var/www/.ssh/known_hosts) に追加できませんでした。
許可が拒否されました (公開鍵)。
致命的: リモート エンドが予期せず電話を切りました
したがって、ブラウザ経由でシェルスクリプトを実行するユーザー(おそらくapache)のsshキーを設定するだけの問題のようです。
git - Git post-receive フックが正しく機能しない
私はgitリポジトリを備えたサーバーを持っています。そのサーバーにプッシュするたびに、そのリポジトリの gitstats ドキュメントを再生成したいと考えています。
そのマシンで次のコマンドを実行すると、gitstats ドキュメントが適切に更新されます。
そして、これはそのサーバーのリポジトリにある受信後フックです。
したがって、そのマシンにプッシュすると、そのコマンドを実行しようとしますが、正しく機能しません。プッシュ後の出力メッセージには、次のエラー メッセージが含まれます。
そのコマンドをフックから削除すると、エラー メッセージは表示されません。
サーバー上で直接実行するとコマンドが正常に機能し、プッシュ後に実行すると機能しない理由がわかりません。
助言がありますか?
git - git pull in hooks/post-receive に失敗しました
サーバーでは、/home/git/xxx/hooks/post-receive:
サーバーでは、 /var/www/xxx は次のように作成されました。
クライアントで「git push」を実行すると、次のメッセージが表示されました。
何か案は?
git - gitoliteのブランチごと、レポごとのコミットフック
特定のブランチとリポジトリの組み合わせに対してのみ、gitolite / gitサーバーでプッシュが受信されたときに機能するコミットフックを追加したいと思います(リポジトリ'dog'のブランチ'cat')。
私の環境:gitバージョン1.7.4.1、
私がこれまでにしたこと:
/home/git/repositories/dog.git/hooks/post-receive.secondary
git/gitoliteサーバー上のファイルに触れました。次の内容でファイルを編集しました。
/li>ファイルの所有者を「git」ユーザーに設定します
ファイルのアクセス許可を700に設定します
「dog」リポジトリの「cat」ブランチへのコミットを実行しました
結果:テストファイルは作成されません
ruby - Heroku Post フック プロセッサのしくみと、そのような動物の作成について詳しく知る方法
私は最近、いくつかのネイティブの heroku 機能を利用して github 経由でコミット後のフックを実行する ruby アプリをデプロイしました。
https://github.com/ajlai/github-heroku-pusher .
今、私はそれがどのように機能するのか、おそらく別の言語でherokuに似た低レベルのプラグインを構築する方法に興味があります.
プログラムの機能の簡単な要約:
基本的に、この ruby プログラム:
github にプッシュするたびに heroku を自動的にデプロイする
4 つのパラメーターのみで構成されます (主なパラメーターは heroku API キーです)。
箱から出してすぐに完璧に動作します。heroku をいじる必要はありません。このアプリケーションを新しい heroku アプリとしてデプロイし、ポスト受信フックを github に追加しただけで、github にコミットするたびに heroku がアプリケーションを自動的にビルドしてくれることがわかりました。
この ruby スクリプト (https://github.com/ajlai/github-heroku-pusher/blob/master/web.rb) がどのように機能して、この github を heroku 自動デプロイ サービスに移行するかについての私の質問
シェルコマンドを実行しているようです。それはherokuでも許可されていますか?
github からの実際の「git pull」はどこで行われますか? 「GitPusher」オブジェクトが表示されますが、そのオブジェクトが定義されている場所が明確ではありません (クラスに静的にインポートされた ruby gem オブジェクトであると思われますが、どの gem から来ているのかわかりません)。
このプロジェクトを構築した勇敢な魂が、Heroku 用のこのような低レベルのフックを構築するために必要なドキュメントをどこで見つけたのか疑問に思っています。同じ同類のカスタム ワーカー フック (できれば Ruby 以外の言語) を構築する方法についてのヒントをいただければ幸いです。
git - Windows 用 post-receive スクリプト (電子メール通知)
Windows マシンにベア (中央) リポジトリを作成しました。私の同僚と私は現在、このリポジトリを使用しています。git が更新されるたびに電子メール通知を送信するようにします。post-receive
フック、構成mailinglist
、およびemailprefix
プロパティにスクリプトを記述する必要があることはわかっています。しかし、私が必要としているのは、Windows マシンでメールを送信するスクリプト (受信後) です。
注: 同様の質問がここで尋ねられます。しかし、答えは「何をすべきか」です。「どうやって?」ではありません。 レポジトリが Windows マシン上にある場合、git で post-receive-email スクリプトを使用してメールを送信できますか?
前もって感謝します。
git - Gitサイトのデプロイ-受信後のフックでのチェックアウトが機能しない
私はこのチュートリアル「Gitを使用してWebサイトを管理する」に従い、Towerを使用してローカルリポジトリをコミットしてリモートサーバーにプッシュしました。プッシュは次のメッセージで成功します。
受信後のフックが実行されていることを確認しましたが、checkout
コマンドは、プッシュされたコードを作業ディレクトリとして設定したと思われるものに追加しません。私は一日中これを理解しようとしてきました。
受信後:
私はGitを初めて使用し、学ぶことに非常に熱心です。これをデバッグするための最良の方法は何ですか?