Git チュートリアル-ブランチ
このチュートリアルでは、git バージョン管理システムの最も重要なインポート機能の 1つであるブランチについて学習します。
なぜブランチが必要なのですか
これまで、1つのブランチ(master
ブランチ)のみに取り組んできました。これは、新しいリポジトリを作成するときのデフォルトのブランチです。
一般的に、master
ブランチはコードの安定バージョンを表し、リリースまたは公開されるコードを対象としています。そのため、master
ブランチの新しいコードでコードが台無しになった場合に備えて、新しいコードで新しい機能を試したくありません。
アプリケーションに新しい機能を追加したい場合、私たちが本当にやりたいことは、この新しい機能を試すための隔離された環境を作成し、それを終了してテストする場合、この新しい機能を master
ブランチ。master
ブランチにコミットを追加する代わりに、新しいブランチを作成して、隔離された環境として動作し、新しい機能をテストします。
Git で新しいブランチを作成する
$ git branch test_branch
このブランチを test_branch
にするときにここで行っているのは、master
ブランチのコードの状態をこのブランチにコピーして、そもそもこの test_branch
ブランチで作業できることです。
次のように入力して、PC で利用可能なブランチを一覧表示できます。
$ git branch
* master
test_branch
新しく作成された test_branch
と master
ブランチがここにリストされます。
新しいブランチを作成したばかりですが、今でもあなたは master
ブランチにいます。作業するには、新しいブランチをチェックアウトする必要があります。
$ git checkout test_branch
Switched to branch 'test_branch'
D test1_rename.txt
ブランチ test_branch
に切り替えられたので、再度 git branch
を実行すると、
$ git branch
master
* test_branch
次に、アスタリスク*
が test_branch
の前にあり、master
ではないため、test_branch
ブランチにいることがわかります。
This is the added line in branch test_branch.
のように、ファイル test3.txt
にテキストを追加してみましょう。さて、git status
を実行すると、このファイルを変更したことがわかります。
$ git status
On branch test_branch
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: test3.txt
no changes added to commit (use "git add" and/or "git commit -a")
前の章で学んだように、このブランチへの変更をコミットできます。
私たちが行ったことは、この新しいブランチを作成し、master
ブランチから分離されたいくつかの変更を加えたことです。master
ブランチのコードは変更されず安定しています。
Git でブランチを削除する
ブランチに追加された新しい機能に満足したら、削除できます。
$ git checkout master
$ git branch -d test_branch
error: The branch 'test_branch' is not fully merged.
If you are sure you want to delete it, run 'git branch -D test_branch'.
branch
の後の -d
パラメータは、指定されたブランチを削除することを意味します。
The branch 'test_branch' is not fully merged. If you are sure you want to delete it, run 'git branch -D test_branch'.
というエラーが発生しました。削除したい場合は、git branch -D test_branch
を実行してください。小文字の d
はブランチをマージした後にのみ機能しますが、大文字の D
はブランチを強制的に削除できます。次の章でブランチをマージする方法を紹介しますが、今のところは、大文字の D
を使用してこのブランチを削除しましょう。
$ git branch -D test_branch
Deleted branch test_branch (was 7d6bca6).
ブランチを今すぐチェックすると、master
ブランチのみが表示されます。
$ git branch
* master
Git で新しいブランチを同時に作成してチェックアウトする
上記のワークフローでは、最初に git branch
を使用してブランチを作成し、次に git checkout
を使用してこのブランチをチェックアウトします。
これらの 2つのステップを 1つにまとめるより簡単な方法があります。
$ git checkout -b new_test_branch
Switched to a new branch 'new_test_branch'
M test3.txt
それが行うことは、ブランチを作成し、同様にチェックアウトすることです。したがって、これらの 2つの手順を個別に実行する必要はありません。