branch とは
今まで変更の履歴は一直線だった。
branch ( ブランチ ) とは変更の履歴の枝分かれのこと。
目的に応じ branch を作成し、変更の履歴を管理する。デフォルトでは master
という branch が存在する。 branch の状況を確認するには以下のコマンドを使用する
$ git branch
*
は現在の branch を表す。
この章では branch 操作について学ぶ
branch を作成する
新たに branch を作成するには以下のコマンドを使用する
$ git branch <branch名>
$ cd ~/first_repo
$ git branch first-branch
branch を作成できたはずなので、確認する
$ git branch
first-branch
* master
branch を移動する
first-branch
を作成しただけなので、次に、作成した branch に移動する。
$ git checkout <branch名>
で好きな branch に移動できる。
ミニ演習
first-branch
に移動せよ
Switched to branch 'first-branch'
移動した際に上記のコマンド結果が出力され、さらに $ git branch
コマンドで現在の branch を確認し
* first-branch
master
という結果になることを確認せよ
branch を削除する
branch を作成することができたので、次に削除の仕方を確認する。以下のコマンドで任意の branch を削除することができる。
$ git branch -d <branch名>
ミニ演習
first-branch
を削除せよ。その時
error: Cannot delete the branch 'first-branch' which you are currently on.
というエラーがでた場合には、注意してエラー文を読み、対処せよ。
Hint 今までに出てきた git のコマンドで対処できる。
削除が成功すると、以下の結果が出力される
Deleted branch first-branch (was 87fa83f).
$ git branch
で branch を表示すると以下のように master
のみになっていると成功
* master
branch を再度作成し commit する
$ git branch try-commit
$ git checkout try-commit
$ touch for_commit.txt
ミニ演習
- 「
for_commit.txt
ファイルを作成した」という変更をtry-commit
branch に commit せよ。commit message はなんでも良い - commit 後
master
branch へ移動しtry-commit
branch との差を見つけよ
Hint : 指定したブランチに commit するにはそのブランチ上で commit するだけでよい
変更を commit するにはふたつの git コマンドが必要だった
git add
git commit
commit の履歴を確認するには、
git log
コマンドを用いる
branch を merge する
merge (マージ) とは「ひとつに結合する」ということ。枝分かれした branch を 以下のコマンドによって merge することができる。
$ git merge <マージしたい branch 名>
ミニ演習
master
branch にtry-commit
branch の変更を merge せよ。( どちらの branch でgit merge
コマンドを実行するか注意せよ。)- merge が成功したら
try-commit
branch を削除せよ
Hint : 誤って commit した場合や merge した場合は、
git reset
コマンドを使って commit 履歴を削除できる
merge すると以下のような結果が出力される。
Updating 87fa83f..80eb2a1
Fast-forward
for_commit.txt | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 for_commit.txt
以下のコマンドを打って、同じ結果が出力されれば正解
$ git branch
* master
$ ls
for_commit.txt hoge.txt
まとめ
branch 操作コマンド
git branch
ブランチの確認git branch <branch名>
ブランチの作成git branch -d <branch名>
ブランチの削除git checkout <branch名>
ブランチの移動git merge <branch名>
ブランチの結合
アドバンス演習
$ git branch <branch名>
$ git checkout <branch名>
上記の2つのコマンドで、ブランチの作成と移動を行ったが、git checkout
には作成と移動を同時に行えるオプションがある。
そのオプションを調べて実験せよ。
Hint 次のコマンドでオプションを調べることができる
git checkout -h