Tool

ブランチの作成 [Git]

Gitの強力な機能の一つに「ブランチ」があります。これは通常の作業の流れから枝分かれした支流を作る機能です。作業ごとに専用のブランチを作るなど、特にチームで作業をしているときに威力を発揮する機能です。
Tool

ブランチとは何か

まず次の図を見てください。

ブランチの作成とマージ

Gitではファイルを変更してはコミットして、という作業を繰り返します。この一連のコミットの流れのことを「ブランチ」と呼んでいます。この図はコミットの流れを図式化した「コミットグラフ」と呼ばれるものです。

新しいブランチを作るまでは本流に当たる一本のブランチだけが存在します。この本流のブランチを「master」と呼びます。図ではコミット1~コミット7までがmasterブランチにあたります。

コミット2まできたとき新しいブランチが作成されています。このブランチには「rachi/48」という名前がつけられています。

rachi/48ブランチが作られた後masterでコミット3~4の変更が行われました。その間rachi/48ブランチではコミット5~6の変更が行われています。

コミット6でrachi/48上での作業は完了したため、結果をmasterに反映させます。つまりrachi/48をmasterに「マージ」するわけです。マージした結果はコミット7としてmaster上にコミットされます。

なおマージしたからといってブランチが消滅することはありません。明示的に削除しない限りブランチは残るので引き続きrachi/48上で作業を行うことも可能です。

なぜブランチを作るのか

一人でGitを使っている限りはブランチを作る必要はあまりないかもしれません。しかしチームで作業をしているとき各人が自由気ままにmasterにコミットを繰り返すと、競合が頻発して手に負えなくなるかもしれません。作業は必ず各人の作業用ブランチで行うというルールを徹底すればこのような混乱は最小限に抑えることができます。とはいえ他人の変更を完全に無視して作業用ブランチだけで作業を進めることも問題です。作業の区切りがついたら作業用ブランチをmasterへマージする、あるいはmasterの変更を作業用ブランチに取り込むなど、こまめに同期をとることが必要です。

基本的にはmasterへの直接コミットは避けて必ず作業用ブランチを作成する、作業が終わったらすみやかに変更をmasterへマージする、などのルールを明確することが大切と言えるでしょう。

ブランチの作成

TortoiseGitでブランチを作るには次のようにします。

ブランチの作成ダイアログ
  1. フォルダを選択して右クリックメニューで[Git|ブランチを作成]を選択します。
  2. ダイアログが表示されるので、ブランチ名を指定します。また[新しいブランチに切り替える]をチェックして、そのブランチでの作業がすぐに行えるようにして[OK]をクリックします。
  3. ブランチ名にはフォルダのように階層的な名前がつけられます。たとえば作業者の名前とRedmineなどの作業チケット番号を組み合わせて「rachi/48」などとすると良いでしょう。
  4. [新しいブランチに切り替える]をチェックしなかったときは、後から[TortoiseGit|切り替え]を実行して作業ブランチを切り替える必要があります。

ブランチの名前には特に決まりはありません。しかしこのように「作成者/チケット番号」などのルールを決めておけば他の人のブランチと混乱することもありませんし、あとから見てわかりやすいブランチをつくることができます。

ブランチのプッシュ

プッシュダイアログリポジトリをリモートリポジトリにプッシュするとき必ずすべての内容をプッシュするわけではありません。ローカルの作業用ブランチであれば、変更をmasterにマージしさえすればブランチ自体をプッシュして他の人と共有する必要はないわけです。

そのためプッシュするときに対象のブランチを選択できるようになっています。masterだけ、特定のブランチだけをプッシュすることもできますし、すべてのブランチをプッシュすることも可能です。

プル/フェッチするときも同様で、リモートリポジトリ上の特定のブランチを選んで取り込むことができます。

その他のエントリー