2016-03-04 6 views
13

私はプロジェクトに取り組んでいて、最初のプルリクエストを提出しました。待っていますが、まだ保留中のマージで作業してプロジェクトを構築していますに。今私が持っている:保留を待っている間の作業PR

*master 
user_story_1 

user_story_1はオープ​​ンプル要求を持っています。

今私は新しいブランチuser_story_2を作成しようとしています。ここで私はuser_story_1に残した作業を続けることができます。どのようにしてGitでこれを行うことができますか?私の保留中のマージに影響を与えることはありませんか?

答えて

27

user_story_1で行った作業の上に新しいuser_story_2ブランチを開始したいとします。

  1. オープンプル要求user_story_1用:

    $ git checkout -b user_story_2 user_story_1
    * (user_story_1, user_story_2) 
        * 
    /
    * (master) 
    * 
    * 
    
  2. * (user_story_1) 
        * 
    /
    * (master) 
    * 
    * 
    
  3. user_story_1に基づいて新しいブランチuser_story_2を作成します。ここで私はシナリオのこの種で使用したワークフローです

    新しい支店での作業:

    * (user_story_2) 
        *  
        * (user_story_1) 
        * 
    /
    * (master) 
    * 
    * 
    
  4. プル要求がマージされます:

    * (user_story_2) 
        *  
    * | (master) 
    |\| 
    | * (user_story_1) 
    | * 
    |/ 
    * 
    * 
    * 
    
  5. は古い枝を削除します。

    * (user_story_2) 
        *  
    * | (master) 
    |\| 
    | * 
    | * 
    |/ 
    * 
    * 
    * 
    
  6. masterに新しいブランチをリベース:

    * (user_story_2) 
        *  
    /
    * (master) 
    |\ 
    | * 
    | * 
    |/ 
    * 
    * 
    * 
    
+1

最初のブランチが拒否された場合はどうなりますか? – Narayon

+2

私は通常、 'master_'に' user_story_2'をリベースします。 'git rebase --onto master user_story_1 user_story_2' - 2つのブランチが完全に独立していないと、競合が発生する可能性があります。 – alextercete

4

あなたのストーリー/フィーチャーごとにmasterから新しいブランチを作成します。

各ブランチをマージする前に、そのブランチにマスターをマージするか、ブランチをマスターにリベースしてください。後者は私の好みですが、結局のところ結果は同じです。

あなたは葛藤を得るでしょう、その周りに道はありません。しかし、ブランチ内の競合を解決したい。マスターではありません。このようにして、の前に競合を解決した後にブランチをテストして、をマスターにマージすることができます。

関連する問題