16

始める前に、これに似た質問がたくさんあることは知っていますが、それらに関するフィードバックが非常に多様であるため、簡潔で安全なベスト プラクティスを見つけるのに本当に苦労しています。

私がしたいこと:

  1. 開発ブランチのローカル マシンで作業を完了します。
  2. 変更を git にプッシュします。Git は Webhook URL に投稿し、リモート サーバーに開発サイトの変更を自動的にプルさせます。
  3. QA が行われ、開発サイトで適切であることが確認されたら、マスター ブランチを運用サイト (開発サイトと同じサーバー上) にプッシュします。

私がいる場所:

ローカル マシンとリモート サーバーに git をインストールしました。mod を開発ブランチにプッシュして git にすることができます。リモートサーバーでは、更新を取得でき、魅力的に機能します。問題は、ローカル マシンから変更がプッシュされたときに、リモート サーバーを自動的に更新できないことです。

私の質問は次のとおりです。

  1. リモート サーバー開発サイト ディレクトリの場合、Igit initまたはgit init --bare? サーバー自体を更新する予定はありません。開発チームがローカルで作業し、mod をサーバーにプッシュするようにしたいと考えています。gitリポジトリへのリモートエイリアスを設定するには作業ツリーが必要なので、git initを使用する必要があると思いますが、確認したかったのです。
  2. gitの問題からのWebhookの投稿は、ユーザー権限によるものだと確信しています。どうすればこれを安全に回避できますか? git フック ファイルの更新を提案する多くのチュートリアルを読みましたが、それは必要以上に抜本的な対策だと感じています。大量のコードを追加せずに (可能であれば) ファイルを安全にプルする URL に Webhook がヒットできるようにしたいと考えています。

私は生来の Web 開発者なので、git と sysadmin のタスクは通常、私の存在の悩みの種です。繰り返しになりますが、この質問が他の質問と似ていることは知っていますが、問題を解決するための包括的で簡潔、安全で最も論理的なアプローチをまだ見つけていません。私は約16時間で、正式に「進歩のないサークルに入る」ポイントに到達しました.

4

2 に答える 2

21

これは、GitHub サービス フックを使用して非常に簡単に行うことができます。

git pull を実行するプロセスを処理するファイルをもう 1 つ作成する必要があります。github.php (または任意のもの) という名前の新しいファイルを追加し、以下を追加します。

<?php `git pull`;

そのファイルを保存し、サーバーのリポジトリ ディレクトリにアップロードします。次に、Services Hooks -> Post-Receive URLそのファイルにアクセスして URL をコピーし、「Post-Receive URL」に貼り付けます。http://demo.test.com/myfolder/github.php

したがって、プッシュすると、GitHub が自動的にこの URL にアクセスし、サーバーがgit pull.

詳細を確認するには、このチュートリアルに移動してください

于 2013-08-05T07:48:38.110 に答える
4

私はまったく同じ問題を抱えていました。コードと開発のスキルは高く、システム管理者のスキルは苦手でした。最終的にコードをプッシュする準備ができたとき、 GitHubの担当者に提案された方法を尋ねなければなりませんでした。彼らは Capistrano で応答しました。これは、リモート サーバーでコマンド (git pull など) を実行するRubyアプリケーションであり、想像できるほとんどすべてのコマンドと一緒に実行されます。

詳細については、次の記事を参照してください。

うそをつくつもりはありませんが、学習曲線はかなり急でしたが、Capistrano を使い始めると、コードをプッシュするのにうまく機能することがわかります。私は Symfony でアプリケーションを開発しており、ローカル マシンから 1 つのコマンドでコードをプルし、キャッシュをクリアし、ログ ファイルをクリアするように Capistrano をセットアップしています。

于 2012-05-10T22:58:17.093 に答える