Chapter 4.2 - Managing branches - Make new branch
新しいbranchはgit branch
コマンドを使って切り出すことができます。以下はmaster
で2回commitを重ねたあとのcommit logです。試しにここから新しいbranchを切り出してみます。
# branchを切り出す前。master branchのみ存在。
* 811c9a5 (HEAD, master) modify text
* 4b5d30b initial commit
git branch
コマンドは引数にbranch名を受けとり、その名前の新しいbranchを作成します。新しく作成されたbranchの最新のcommitは、git branch
コマンドを実行したときの最新のcommit(=HEAD
)と同一になります。
$ git branch new_branch
$ git log --oneline --graph --decorate --branches --tags --remotes
* 811c9a5 (HEAD, new_branch, master) modify text
* 4b5d30b initial commit
master
とnew_branch
の2つのbranchが存在するのが分かると思います。それぞれのbranchはそれぞれのcommit logを持つので、commitを重ねると以下のようなlogになります。
* 762eb60 (HEAD, new_branch) commit on new_branch
| * c1e7c6c (master) commit on master
|/
* 811c9a5 modify text
* 4b5d30b initial commit
git checkout
git checkout
コマンドはbranch名やcommit IDを引数として受け取って、それが指すcommitをworking directoryに展開します。慣れないうちはbranchを切り替える目的のコマンドとして覚えておけば問題ありません。
$ git checkout <commit>
次の例はmaster
からnew_branch
にbranchを切り替える操作です。git branch
コマンドは引数を渡さずに-a
や-v
などのオプションを付与して実行することによって、local branchやremote branch(remote tracking branch)の情報を確認することができます。
$ git branch -a
* master
new_branch
$ git checkout new_branch
Switched to branch 'new_branch'
$ git branch -a
master
* new_branch
また、git checkout
コマンドは-b
オプションと一緒に実行することによって新しいbranchを作成しながらそのbranchに切り替えることができます。
$ git branch -a
* master
$ git checkout -b new_branch
master
* new_branch
other operations
その他覚えておくと便利なbranchに関するコマンドを列挙しておきます。
# branchの名前を変える
$ git branch -m <old_branch_name> <new_branch>
# branchを削除する
$ git branch -d <branch_name>