gitのブランチ操作について

ブランチを切る場合の手順について、初心者向けに説明していきます。 省略系のコマンドを書いている記事が多いので、あえて遠回りをする手順を書くようにしてます。

最新の状態を取得する

最新のリポジトリの状態が、masterな場合で話を進めていきます。 最新のコミットがdevelopeなど別の名前の場合は、masterをそれに読み替えてください。

まずは、masterブランチを指定しておきましょう。

$ git checkout master

このときに、ローカルのリポジトリがすでに遅れていて最新ではない可能性があります。 そして、git fetch でremoteのソースを取得します。

$ git fetch

こうすることで、リモートのリポジトリがローカルに取り込まれます。 ただ、masterは古いままなので、同期をかけたorigin/masterとコミットにmasterを更新しなければなりません。

$ git rebase origin/master

もしくは

$ git merge --ff origin/master

です。

$ git pull origin master

でも同じことが確かに可能です。 しかし、masterにcommitがあった場合などにマージコミットができてしまいます。 この差分を起こさないためにも、pullは最初のうちはおすすめしません。

masterに対するpullはffを必ずつけたり、rebaseで取得するようにしておけば問題ありません。尚、この設定についてはここでは触れません。 別途解説を書きました! (2015/05/02)

この方法はいろいろと設定が必要なので、git rebase origin/masterがお勧めです。

masterからブランチを作る

上記の状態できていることを確認できたら、masterから作成したブランチを取得しましょう。

$ git branch branch_name  # ブランチの作成$ git checkout branch_name # ブランチの指定

これらを一気にやりたい場合は、

$ git checkout -b branch_name  # ブランチを作成して、そのブランチに移動

で可能です。

git fetch した後に、 git checkout -b origin/master でも一気に操作が可能です。 しかし、gitの履歴がorigin/masterからブランチを切ったことになるので、IDEなどでmergeやdiffを見る場合に不都合が生じることがあるので注意が必要です。