私はgitにかなり慣れていないので、本番環境にデプロイする際のベストプラクティスを考えていましたか?私は、本番用のコードの最新バージョンを常に持っているマスターブランチを持っています。プロダクションに行くとき(今のところ手動で行います)、入力git pull
して最新のものを入手します。しかし、コードをマージしようとし、場合によっては競合などが発生します。マスターブランチにあるものをそのまま取得するように強制する方法はありますか?
私はこれについて多くを読んでみました:
私はgitにかなり慣れていないので、本番環境にデプロイする際のベストプラクティスを考えていましたか?私は、本番用のコードの最新バージョンを常に持っているマスターブランチを持っています。プロダクションに行くとき(今のところ手動で行います)、入力git pull
して最新のものを入手します。しかし、コードをマージしようとし、場合によっては競合などが発生します。マスターブランチにあるものをそのまま取得するように強制する方法はありますか?
私はこれについて多くを読んでみました:
引っ張る代わりに、を使用git fetch origin
してみてください。git reset --hard whatever_deployment_branch_you_use
これにより、リポジトリがコードをマージしようとしないため、サーバーでの競合を回避できます。
これを行うための簡単で信頼できる方法はmaster
、すべての開発が行われるブランチを持つことです。development
ブランチの目的をより正確に反映したい場合は、このブランチの名前をに変更することを選択できます。
次にproduction
、本番環境で現在実行されているものを常に反映する別のブランチがあります。本番環境にデプロイするときはいつでも、production
ブランチをチェックアウトして実行しますgit merge master
。コミットSHAにタグを適用して、master
デプロイしたポイントを簡単に確認できるようにすることもできます。
このようにすることで、開発ボックスでのすべてのマージの競合を修正し、本番ボックスで実行するだけでgit pull
、から最新のものを取得できますproduction
。
これは、上記のフローに代わる、より洗練された(そして潜在的にはより複雑な)代替手段です。複数の開発者がいる場合や、より複雑なリリースサイクルが必要な場合は、これを使用してください。