Jon Purdyには正しい考えがあります。git flow
これらのブランチの実際の管理も簡単になりgit
ます。ブランチ管理はに移行するための引数です。
git
あなたがsvn
--to- git
視点から来ているので、基本的な概要から始めましょう。git
以下を考慮してください。
master--...............-.....-..............-
\ / / /
---develop---------............../
\ /
--feature---
上記の、あなたのブランチmaster
にdevelop
(で示される\
)、およびブランチdevelop
へfeature
の分岐。ブランチに沿っ/
てコミット(-
)を使用して、これらのブランチをマージします()。(コミットはないが、マージが右側にある場合、次がコミットであること.
を示すインジケータがあります-
)。
簡単です。メインリリースに修正プログラムがある場合はどうなりますか?
master--...............-.....-................-...........-.........-
\ / / / \ /| /
\ / / / -hotfix-- V /
---develop---------............../..............-...----
\ / \ V /
--feature--- --feature2...----
上記からdevelop
分岐しmaster
ます。で発見されmaster
たバグは、から分岐しmaster
、修正してからにマージすることで修正されましたmaster
。私たちは、その後、合併master
へdevelop
、その後develop
にfeature2
から新しいコードを巻かれ、hotfix
これらの枝に。
にfeature2
戻るとdevelop
、その履歴にはが含まdevelop
れますhotfix
。同様に、develop
にマージされてfeature2
から、新しいコードでmaster
そうマージ、develop
に戻ってmaster
それはそれは中にコミットに基づいているとして、滞りなく起こるのだろうmaster
あなたがから分岐したかのように、時その時master
その時点で。
そのため、これを行う別の方法があります。
master--..........-........-
\ /\ /
---1.0-- --1.1--
あなたの1.0のリリースではtagged-取得1.0.1
、1.0.2
、1.0.3
、など。
ここにトリックがあります:1.0でバグを発見し、1.1、1.2、および1.3に影響します。職業はなんですか?
最新または最も古いメンテナンスリリースから分岐して修正します。次に、あなたの新しいマージhotfix
に支店を1.3
に-そして1.2
、1.1
と1.0
。メンテナンスバージョンの各ブランチから分岐しないでください。にマージ1.0
しmaster
たり、master
戻ってマージしないでください1.0
。1つのhotfix
ブランチを取得し、それをすべてのバージョンブランチにマージします。競合がある場合は、通知されます。コードを確認して、変更が正しいことを確認してgit diff
ください(友達です)。
特定の変更がどこにでも適用されるようになりました。系統は分岐していますが、大丈夫です。それは偶然ではありません。1.3
頭に1.3.17のタグを付け、から分岐している進行中のすべての機能にマージして、先に進み1.3
ます。
git flow
延長はあなたのためにこれらのメンテナンス、機能、および修正プログラムの支店を管理することができます。ワークフローをいったん終了すると、これは簡単であり、ソースコード管理から多大なトラブルを取り除きます。
私はこれをプログラミングチームで見ましたが、プログラマーとしてそれほど深く働いたことはないので、日々のワークフローを自分で頭を動かしています。
git
か?これには、git
タグ付けされていないままであるため、どのコミットにビルドの問題やテストの失敗があるかを明確にするという追加の利点があります。