Git はDVCSであることを思い出してください。何かをコミットするためにリモートサーバーに接続しないという事実は、設計によるものです。
やりたいことは、コードを統合サーバー (実際にコードを実行するサーバー) にプッシュするローカル Git リポジトリーを用意することです。これはデプロイのようなもので、本番環境ではなくテスト サーバーにデプロイするだけです。
これは通常、プッシュ先の共有 Git リポジトリを持つことで実現されます。このレポは裸である必要があります。裸の共有リポジトリに加えて、Apache docroot として機能する共有 Git リポジトリの裸でないクローンが必要になります。
共有リポジトリがコミットを受け取ると、docroot リポジトリが実行されgit pull
ます。
これは、共有リポジトリでpost-receive フックを使用することで実現できます。
docroot リポジトリは、特定のブランチ (たとえばdevelop
) でチェックアウトされます。そのため、他のブランチにコミットしてプッシュしても、サーバーには影響しません。
これにより、複数のデプロイ リポジトリをセットアップできるためprod
、それらの 1 つに関連付けられた別のブランチを作成して、実際に本番コードを更新することができます。
また、まったく展開されていない共有ブランチに未完了/進行中の作業を保存できるため、ラップトップで作業していたものが共有リポジトリで安全であることを確認できます。テストサーバーに送信されないのは、それが完全ではなく、テストサーバーが壊れて、他の人が作業できなくなったりする可能性があるためです。
この記事では、そのすべてをセットアップする方法について詳しく説明します。私は前にそれをやったことがあります、それはうまくいきます。