ブランチの基礎
ブランチの作成
ブランチを作成するには git branch ブランチ名 です。 そして、ローカルに存在する全ブランチを確認するには、ブランチ名を除いた git branch とします。
具体例として、 A という名前のブランチを作成して、それが作成されたことを確認します。
$ git branch A $ git branch A * master
* がついているのが現在のブランチです。
ブランチの削除
ブランチを削除するには -D オプションで、削除するブランチ名を指定します。
$ git branch -D A Deleted branch A (was cb7ed46).
ブランチを切り替える
ブランチを切り替えるには git checkout コマンドを用います。
次の例では、初めに現在のブランチが master であることを確認してから、ブランチ A にスイッチしています。
$ git branch A * master $ git checkout A Switched to branch 'A' $ git branch * A master
引き続きこの状態で、 foo.c を次のように編集します。
#include <stdio.h>
void foo(){
printf("Hello! I'm in A.\n");
}
確かにこれが動くことを確認して・・・
$ gcc app1.c foo.c $ ./a.out Hello! I'm in A.
それからコミットします。
$ git add . $ git commit -m "Changed a message" [A c581e01] Changed a message 1 files changed, 1 insertions(+), 1 deletions(-)
試しにもう一度 master ブランチに戻って foo.c を確認します。
$ git checkout master Switched to branch 'master' $ cat foo.c #include <stdio.h> void foo(){ printf("Hello, world!\n"); }
先ほど変更した文字列は元のままです。これは異なるブランチで foo.c を編集したからです。
ブランチのマージ
ブランチのマージは git merge で行います。
さっそく具体例をみてみましょう。
まず現在のブランチを確認します。
$ git branch * A master
ブランチは master と A があって、現在は A です。
foo.c の中身を確認しておきます。
$ cat foo.c #include <stdio.h> void foo(){ printf("Hello! I'm in A.\n"); }
master ブランチに移動します。
$ git checkout master Switched to branch 'master'
ここで foo.c の内容を確認します。先ほどと文字列が異なっていますね。
$ cat foo.c #include <stdio.h> void foo(){ printf("Hello, world!\n"); }
ここで master に A をマージします。コマンドは次のように git merge A です。
$ git merge A Updating 1125814..c581e01 Fast-forward foo.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
念のためリポジトリのステータスを確認すると、ステージングエリアに何もなくすべてコミットされた状態であることがわかります。
$ git status # On branch master nothing to commit (working directory clean)
foo.c の内容を確認します。
$ cat foo.c #include <stdio.h> void foo(){ printf("Hello! I'm in A.\n"); }
ブランチ A でみた foo.c の内容に変更されています。確かにマージ作業が完了していることが確認できました。
タグ
ある時点のコミットに対しタグを付けることができます。
$ git tag v1.0 $ git tag v1.0
タグからブランチを作ることもできます。