1

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

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

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

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

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

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

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

4

1 に答える 1

1

Staging受信後のフックを制御できない場合(つまり、Staging常にサービスを提供します)、必要なブランチをリモートブランチmasterにいつでもプッシュできます。master

git push --force Staging my-funky-branch:master

このようにリモートmasterブランチを再定義すると、からダウンストリームのすべての人(pullまたはfetchからの人)に問題が発生することに注意してくださいStaging

を追跡するための特別なローカルブランチを作成し、Staging masterそのブランチへのすべての変更をマージすることもできます。

git branch --set-upstream staging-master Staging/master
git checkout staging-master
git merge --no-ff my-funky-branch
git push

受信後のフックを制御できる場合は、このようなものを使用して、プッシュしたブランチを自動的に提供できます。

于 2012-09-19T23:18:52.847 に答える