サブ機能で動作するための機能ブランチからのGitブランチ


12

現在、次のような状況にあり、サブ機能ブランチに対して機能ブランチがブランチされています(同じ機能のバックエンドとフロントエンドの作業など)。

o 
|
o development
|\
| o feature-a
| |
| o
| |\
| | o feature-a-sub
| | |
| | |
|  \
|   o merged feature-a into feature-a-sub
|  /
o feature-a-sub merged into development
| |
| o feature-a with future work on it
|
o development

開発者は、最初にfeature-aを自分のfeature-a-subブランチにマージして最新の状態にし、次に彼のfeature-a-subを開発にマージしました。一方、最初の機能はブランチがまだ存在し、まだ終了していません。

私の観点では、これにより、すべての変更がfeature-a-subにマージされてから開発にマージされるため、feature-aブランチが廃止されるという問題が生じます。さらに、feature-aの作業が継続されているため、将来のマージの競合と多くの手作業が発生します。

どこを間違えたのか、トラブルの少ない適切なワークフローはどのように見えるのか?

回答:


14

一つはなければならないだけにして、親ブランチからマージ。なぜならfeature-a-sub、これはそうfeature-aではないdevelopment

これは開発が上続け、将来の問題を作成したように、親ブランチが作成された理由が満たされていないことを祖父母分岐手段にマージし、はいfeature-adevelopmentコード行の増加発散とダウンより紛争につながると道路。

これはfeature-a-sub、のコードに依存することを前提としていましたfeature-a。のfeature-a-sub代わりにから独立していた場合feature-a、から分岐することはなくfeature-a、代わりにに分岐(およびマージ)する必要がありましたdevelopment

場合feature-aに必要なfeature-a-sub作業には(ないことを確認、それはようやったfeature-aのマージすることなく、継続的な仕事feature-a-sub、それに)、とfeature-a-subの独立したfeature-afeature-a-sub代わりにされている必要がありますfeature-bから、分岐してdevelopment、にマージバックdevelopmentした後、いずれかのマージdevelopmentfeature-b(もし1つのdoesnの開発から他の変更を取得したくない)にfeature-a

ワークフローは次のいずれかでなければなりません。

o                                        
|                                        
o development                            
|\                                       
| o feature-a                            
| |                                      
| o                                      
| |\                                     
| | o feature-a-sub                      
| | |                                    
| | |                                    
| | |                                    
| | o merged feature-a into feature-a-sub
| |/                                     
| o feature-a-sub merged into feature-a  
| |                                      
| o feature-a with future work on it     
|                                        
o development 

または

o                                                  
|                                                  
o development                                      
|\                                                 
| \                                                
|  \                                               
|   o feature-a                                    
|\  |                                              
| b | feature-b                                    
| | |                                              
| | |                                              
| | |                                              
| b | feature-b complete                           
|/ \|                                              
o   o feature-b merged to development and feature-a
|   |                                              
|   o feature-a with future work on it             

関連- 分岐の哲学に関する私のお気に入りの読書:Advanced SCM Branching Strategies。このホワイトペーパーは集中管理されたバージョン管理システムを対象としていますが、各ブランチが担うことができる役割の背後にある考え方は、特定のブランチで次に何をすべきかを理解し、推論できるようにするために重要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.