Herokuを使用したブランチ戦略を使用した優れたGit展開?
-
18-09-2019 - |
質問
Git + Heroku(Ruby on Rails)で使用する優れた展開戦略は何ですか?
現在、私のOrigin Gitリポジトリ:すべての機能(または「ストーリー」)を使用する方法は、最初にブランチとしてチェックアウトされ、次にマスターとマージされて起源にプッシュされます。
Origin/Masterにプッシュされたものはすべて、新しいRailsコードをステージング領域(Simple Rails WebServer)にプルするスクリプトをトリガーします。
新しいプロダクションバージョンをHerokuにプッシュする時が来たら、新しいブランチ(Production_version_121のようなものと呼ばれる)を作成し、それを何らかの形でHerokuにプッシュする必要がありますか?
理想的には、以前の開発バージョンからプロダクションブランチに含める必要がある機能を選択して選択して、テストして、Herokuにプッシュしたいと思います。
たとえば、すべての最新コードが生産にプッシュされることを望んでいない場合があります。私が取り組んだ「A」機能「A」が必要になるかもしれません。「C c」は、より多くのデバッグを必要とする実験的な機能「B」を含めることなく、どういうわけか制作に統合しました。
NB最初はCapistranoを避けて、今のところ手動で何かを手に入れようとしています。
考え?ベストプラクティス?
解決
Gemcutterプロジェクトには、単にあります 製造 ブランチ。生産サイトで見たい変更は、そのブランチにマージされ、次のように展開されます。
git push heroku production:master
staging
ブランチは、ステージングサイトでも同様の目的を果たします(Herokuでも)
他のヒント
Vincent Driessen'sを読んで以来 成功したGit分岐モデル, 、私は夢中になっています。私の会社全体(私たち8人)は現在、このモデルに標準化されており、私が相談した他のいくつかの場所もそれを使用し始めました。
私が見せたほとんどの人は、すでに似たようなことをしていると言い、適応が非常に簡単だと感じています。
一言で言えば、永続的な(マスターと開発)2つのブランチがあります。ほとんどの場合、開発からブランチを作成し、それらを開発して開発することになります。生産リリースやホットフィックスを実行すると、物事はもう少し複雑になりますが、投稿を数回読んだ後、刻まれます。
呼ばれるコマンドラインツールもあります git-flow あなたを助けるために。
これを行うにはさまざまな方法があり、それは本当にあなたの好みに依存します。
頭の上から1つの戦略を1つ与えます。マスターを使用する自動化されたステージングセットアップがすでにあることを考えると、「制作」ブランチを作成することをお勧めします。生産に修正/機能を宣伝する場合は、トピックブランチを「生産」ブランチに統合するだけです。
git checkout production
git pull . my-topic-branch
(resolve any conflicts)
実際に準備ができているとき 押す そのコードは、本番サーバーへのコードです 鬼ごっこ 一意の名前を使用したブランチ(おそらくタイムスタンプ付き)。次に、単に制作ブランチをHerokuに押し上げます。
git checkout production
git tag release-200910201249
一貫した命名スキームを使用することが重要であるため、タイムスタンプのタグ付けを自動化するためのスクリプトまたはgitエイリアスを作成することをお勧めします。私はこのようなものを使用します:
git config alias.dtag '!git tag release-`date "+%Y%m%d%H%M"`'
これにより、入力するだけです git dtag
タイムスタンプでリリースをタグ付けしたいとき。
使用してタグを表示できます git tag
そして、それらを使用して表示します git show release-1234
. 。タグの詳細については、実行してください git help tag
. 。あなたもこれを見つけるかもしれません Githubガイド タグ付けに役立ちます。また、他の人のワークフローを読むことをお勧めします(こちら 素敵な記事)そして、あなたに合ったものを選んで選択します。