問題タブ [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.

0 投票する
2 に答える
2204 参照

git - なぜbashスクリプトをぶら下げて読むのですか?

Pythonを使用した場合と同様の問題が発生しましたreadlines()が、ここで同じかどうかはわかりません。

readコマンドがbashスクリプトをハングさせています。

これを修正する方法について何かアイデアはありますか?

0 投票する
1 に答える
601 参照

git - post-receive スクリプトを使用してリモートで Git sparse-checkout を実行する

私は次のことを行う方法を見つけようとしています(そしてそれが可能かどうかも調べています)。

さまざまなことのために多数のフォルダーを含むローカル git リポジトリがありますが、git を使用して Web サイトを開発サーバーにデプロイできるようにしたいと考えており、実際には 1 つのフォルダーのコンテンツのみがリモート Web ルート (のコンテンツのみ) に移動する必要があります。フォルダー自体ではなく、フォルダー自体です。これは難しいことです)。開発サーバーへの git push を Web アクセス可能なフォルダーの外にあるベア リポジトリに移動し、受信後スクリプトを使用してすべての作業ファイルを webroot に配置しています。ただし、これによりすべてのフォルダーがコピーされ、明らかに、操作が完了した後に特定のフォルダーの内容のみを移動したいと考えています。

いくつかの調査を行うと、sparse-checkout が適しているようです。更新:特定のフォルダーのみをコピーする場所で動作していますが、フォルダー自体を無視してコンテンツをプルすることはまだできていません。これは、.git/info/sparse-checkout に追加するパス/ワイルドカードと関係があると思いますが、ディレクトリを除外するパターンが何であるかはわかりませんが、その内容は除外しません。

これを行う良い方法はありますか?スパース チェックアウトを使用して直接コピーするのではなく、受信後スクリプトを使用して必要なディレクトリの内容を手動でコピーする必要がありますか?

誰でも喜んで助けてくれることに感謝します。ありがとう!

0 投票する
1 に答える
460 参照

git - リモートサーバー上のGitリポジトリと受信後フック

Gitと適切なWeb展開ワークフローをよりよく理解するために、私は別の壁にぶつかっています。私はサーバー関連のソフトウェアとUNIXコマンドに関しては初心者なので、答えるときはそれを覚えておいてください。同様のトピックについて多くの質問がありましたが、特定のプッシュとポスト受信フックを使用したリモートリポジトリへのマージについては何も見つかりませんでした。

展開用に3つのステージを設定しています。

本番(リモートサーバーはベアリポジトリと想定)
^
ステージング(リモートサーバーベアリポジトリ)
^
開発(ローカルマシン)

これまでのところ、Gitをローカル環境とステージング環境で稼働させています。ステージングサーバーに受信後フックを設定しています。これは今のところうまく機能しているようですが、このフックを使用すると、ステージングサーバーで表示できるブランチをプッシュできるようにはなりません。ステージングサーバーは、マスターブランチの状態のページのみを提供します。これはおそらく予想される動作です。

ステージングサーバーでこのフックを使用する必要がありますか?変更をライブで行うように見える唯一の方法は、最初にローカルマシンのマスターにマージしてから、それをステージングにプッシュすることです。変更を調整する必要がある場合、これは正しくないようです。ローカルでマージを元に戻す必要がありますか?

ベアリポジトリと受信後フックが本番サーバーでうまく機能すると確信しています。それは実際には1つの状態しか持たないはずだからです。

これらはすべて正常な動作であり、ワークフローが正しくない可能性があります。これやガイダンスに関する助けをいただければ幸いです。これを検索しましたが、明確なドキュメントが見つかりません。

0 投票する
1 に答える
115 参照

git - byobu と git post-receive フックの使用

post-receive フックの一部として、リポジトリの HEAD をチェックアウトし、起動コマンドを実行します。

したがって、 git push を実行すると正常に動作します。

つまり、ボックスに SSH 接続するときは byobu を使用します。post-receive フックを取得して byobu セッション内で起動コマンドを実行する方法はありますか?SSH で接続すると、アプリが実行されているのを確認できますか?

0 投票する
2 に答える
1914 参照

git - スクリプトで git post-receive エラーをキャッチする

bashスクリプトで私は

終了ステータスを確認します。

リモート サーバーには、いくつかの処理を行う post-receive フックがあります。エラーが発生した場合、post-receive フックはゼロ以外の値で終了します。

ただし、post-receive フックがエラーになると、git push は正常に終了します。特定のエラー文字列の出力を具体的にチェックしていない限り (そうではありません)、私のスクリプトはすべてがうまくいったと考えています。

post-receive フックが失敗したかどうかを判断する簡単な方法はありますか?

0 投票する
2 に答える
123 参照

git - 複数のディレクトリ内のファイルを上書きするために git post-receive を使用する

サーバー上のファイルに変更をデプロイするために git を使用していますが、ファイルは 2 つのディレクトリ (/var/www と /user/myfiles) にありますが、1 つのリポジトリを使用して変更をプッシュしたいと考えています。そこで、レポ (/user/gitrepo) をセットアップしました。解決策を探した後、post-receive を使用して他のディレクトリのファイルを上書きするのが最善の方法だと思いますが、方法がわかりません。フック post-receive を使用して、必要なことを行います (私は git noob です)。誰でも助けることができますか?

明確にするために、user/gitrepo/www/file1とuser/gitrepo/myfiles/file2にファイルがあります

変更をレポにプッシュして、var/www/file1 と user/myfiles/file2 を更新したいと考えています。

ありがとう!

(また、よりうまく機能すると思われるものがあり、git も使用している場合は、詳細なハウツーを教えてもらえますか?)

0 投票する
1 に答える
143 参照

git - タグ名 (バージョン番号) を git post-receive フックで Zip ファイルに追加します

Git では、post-receive フックで (タグを使用して) コミットのバージョン番号を取得しようとしています。

そのタグを取得したら、特定のディレクトリを圧縮してバージョン番号を追加したい (例: myplugin-2.0.1.zip) が、受信後にコミットのタグを取得する方法がわかりません。針。

post-receive フック内でコミットのタグ名を適切に取得する方法を知っている人はいますか?

これが私がこれまでに持っているものですが、SOME_WAY_OF_GETTING_TAG_NAME は私が混乱しているところです。

どんな助けでも感謝します。ありがとう!

0 投票する
1 に答える
572 参照

git - Githubの受信後フックの自動プルロールバック

私は本番サーバーでこのようなものを使用しており、githubで受信後フックとして設定しています。基本的に、githubから適切にフォーマットされたリクエストを受け取るたびに、特定のブランチで変更をプルするように設定されています。

さて、誰かが悪いコードをマスターにプッシュしたとしましょう。それは自動的に本番環境を引っ張ってすべてを壊しました。本番サーバーにSSHで接続し、古いコードを手動でチェックアウトせずに、変更を元に戻すための最良の方法は何ですか?理想的には、もう一度プッシュするのと同じくらい簡単です。

ありがとう!

0 投票する
1 に答える
1864 参照

git - post-receive フックを使用して zip を作成する

post-receiveしばらくフックをいじっていますが、フックを必要なように機能させることができないようです。

post-receive変更をリポジトリにプッシュした後、フックを取得して zip フォルダを作成し、それを git リポジトリ フォルダの外に配置しようとしています。

0 投票する
2 に答える
1396 参照

git - プッシュ通知メールにgitdiffを追加する

現在、リポジトリとユーザーを管理するためにgitoliteを使用しています。プッシュするたびに通知メールを正常に設定できました。コマンドは

通知メールには、変更の概要のみが含まれています。そのプッシュで、変更された各ファイルの変更行を追加したいと思います。そのpost-receive-emailファイルを編集していることを認識しており、git-diffコマンドを使用する必要があります。私の質問は

私が使用しなければならない正確なgit-diffコマンドは何ですか..?そのコマンドをそのpost-receive-emailファイルのどこに追加しましたか。gitoliteで利用可能な構成はありますか?