###前提
- 現在いるブランチはtask1。
-
- ブランチ(task1)のプルリエストを提出して、LGTMをもらった。
- 次の開発のためにtask2というブランチを作ろうとしている。
- リモートリポジトリでLGTMをもらったブランチ(task1)をmasterにマージをしていない状態。
- ローカルリポジトリでもtask1をmasterにマージをしていない状態。
###順序
#####①リモートリポジトリでmasterにマージをする。(bitbucketだとマージをするボタンがあります。)
#####②ローカルリポジトリでもmasterにtask1をマージしてから、masterブランチにいる状態でgit checkout -b task2
を実行する。
$ git checkout master #masterブランチに移動する
$ git merge task1 #task1をmasterにマージする
$ git push origin master #masterブランチに今回マージした変更を適用する
または、
#####task1ブランチにいる状態でgit checkout -b task2
を実行する。
$ git checkout -b task2 #task1ブランチにいる状態でtask1の内容を引き継いだtask2を作成し、同時にtask2ブランチに移動する
#####注意
※task1ブランチにいる状態でgit checkout -b task2
を実行する方法ですと、当然git checkout -b task2
を実行した時点ではmasterブランチにtask1の内容はマージされていない状態となります。
task2の開発が終わった後、
$ git checkout master #masterブランチに移動する
$ git merge task2 #task2をmasterにマージする
上記を行えばtask2(task1の内容を引き継いでいます)をmasterブランチにマージすることができます。
私が取り入れているのはローカルリポジトリでもmasterにtask1をマージしてから、masterブランチにいる状態でgit checkout -b task2を実行する方法です。
どのブランチまでマージをしたか忘れてしまいリモートリポジトリを辿るのが面倒なので1ブランチの開発が終わったらマージをしています。