gitを使用してコードを管理し、CIシステムを使用してビルドアーティファクトをビルド、コピー、およびgitに再プッシュします。マスターブランチにプッシュすると、CIシステムは変更をプルダウンし、ビルドして、本番と呼ばれるブランチにプッシュします。次に、そのブランチがテストされ、別のCIタスクが実行されて、本番ブランチがライブサーバーにプルダウンされます。
ライブサーバーのバージョンをインプレースで編集する人は誰もいません。そのリポジトリのローカルコピーが変更されることはなく、-bproduction修飾子を使用して複製されます。
ただし、ライブサーバーにプルダウンすると、競合が発生する場合があります。gitの理解に問題があると確信していますが、サーバー上で何も変更されておらず、そのブランチからのみプルしている場合、競合はどのように発生する可能性がありますか?
私たちのプロセスは、基本的に次のとおりです。
ローカル:
git push origin master
CI:
git checkout <newest-changeset>
CI:
test
git checkout -b local # to put the detatched-head CHECKOUT from above into a usable branch
git push origin local:production
サーバ:
git pull origin production
--CONFLICT--