【初めてのgit&Sourcetree】並行して変更作業を行える機能【ブランチ】
同じソース(ファイル)に対して並行して複数の変更を行うためにgitは「ブランチ」という機能を提供しています。
この記事ではブランチとは何かを理解しブランチの操作方法について解説します。
目次
1.ブランチって何?
ブランチはソースの変更の流れであり、最初に用意されている「master」ブランチが本流の流れです。
ブランチを使わなければ一つの変更作業が終わるまで別の変更作業は行うことが出来ません。変更作業は逐次行うため作業効率がとても悪くなります。
しかし変更作業の流れ、つまりブランチを複数作ることで同時に変更作業を行うことができます。並行する他の変更作業が終わるのを待つことなく同時に作業を行うことが出来ることになります。
複数の変更作業は枝分かれして行われ、完了したら再び元のブランチに合流(マージ)します。
例を挙げるとWebサイトの改修において、Aさんが見出しの変更作業を行い、Bさんがリンクの追加作業を行うことを同時に行えることになるのです。
複数メンバによる作業ではなく1人で作業する場合でもブランチの活用は有効です。
スポンサードサーチ
2.ブランチを作って作業してみる
1)作業用フォルダについて
この記事の操作説明にあたっては以下のフォルダ構成とファイル内容を想定しています。
・フォルダ:d:\sample2
・ファイル名:Lesson02.txt
・ ファイル「Lesson02.txt」の内容
Javascript
php
python
Perl
JQery
Ruby
COBOL
2)リポジトリの作成
リポジトリを作成します。
詳しい手順は以下の記事でも紹介しています。
Sourcetreeのツールバーの「Create」をクリックしてフォルダを入力して「作成」をクリックします。
最初のコミットを行っておいてください。
3)ファイルの更新作業内容
ファイル「lesson02.txt」に対してそれぞれにバージョン管理を行いつつ並行して変更作業を行います。
①変更作業1:ファイル「lesson02.txt」の1行目にタイトル行として「プログラム言語一覧」を追加します。
②変更作業2:ファイル「lesson02.txt」の最終行に「Swift」を行追加します。
3)ブランチの作成
2つの変更作業についてそれぞれ下記のブランチを作成します。
変更作業1:ブランチ名「addTitle」
変更作業2:ブランチ名「addData」
①ツールボタンの「ブランチ」をクリックします。
②表示されたダイアログでブランチの名称を入力します。
新規ブランチ名に「addTitle」と入力して「新規ブランチを作成してチェックアウト」にチェックが付いているのを確認して「ブランチを作成」をクリックします。
同様にブランチ「addData」を作成します。
③ブランチが作成されると以下のウインドウ表示となります。
ウインドウ左側のブランチ一覧で丸印が付いて太字になっている「addData」が現在作業中のブランチになります。
最後に作成した「addData」が現在のブランチということになります。
先程作成したブランチ「addTitle」と「addData」でも「master」ブランチと同様にファイルを編集してコミットが行えます。
4)作成したブランチで更新作業を行ってみよう。
(1)チェックアウトについて
作業するブランチを切り替える事を「チェックアウト」と言います。
チェックアウトするにはいくつか方法がありますがウインドウ左のブランチ名をダブルクリックすると作業対象のブランチに切り替わります。
(2)「変更作業1」を行う。
では1行目にタイトル行として「プログラム言語一覧」を追加する変更を行います。
①作業するブランチを「addTitle」に切り替え(チェックアウト)を行う。
ウインドウ左のブランチ「addTitle」をダブルクリックしてブランチを切り替えます。
②ファイルを変更して保存する
「変更作業1」である、1行目にタイトル行として「プログラム言語一覧」を追加して「上書き保存」します。
③Sourcetreeでコミットします。
Sourcetreeのウインドウを表示するとファイルの変更が検出され「コミットされていない変更があります。」と表示されているのでツールボタンの「コミット」をクリックします。
④ファイルを作業ツリーからステージエリアに移して、コミットメッセージを入力してコミットします。
⑤「変更作業1」のコミットが完了した状態です。
ブランチ「addTitle」でコミットが完了しました。
ウィンドウ左側のHistoryをクリックすると変更履歴が表示されます。
すると「master」ブランチ、「addData」ブランチより更新が1つ進んだことが確認できます。
⑥ファイルの状態を確認
現在の各ブランチでのファイルの状態を見てみましょう。
ブランチ「master」「addData」をそれぞれダブルクリックしてブランチを切り替えてからファイル「lesson02.txt」を開いてみると「addTitle」で行った変更の影響を受けていないことが確認できます。
(3)「変更作業2」を行う。
①作業するブランチを「addData」に切り替え(チェックアウト)を行う。
Sourcetreeのウインドウ左のブランチ「addData」をダブルクリックしてブランチを切り替えます。
②ファイルを変更して上書き保存する
最終行に「Swift」を追加して上書き保存します。
③Sourcertreeでコミットします。
Sourcetreeのウインドウを表示すると変更が検出され「コミットされていない変更があります。」と表示されているのでツールボタンのコミットをクリックします。
④ステージエリアに移して、コミットメッセージを入力してコミットします。
⑤「変更作業2」のコミットが完了した状態です。
ブランチ「addData」でコミットが完了しました。
⑥ファイルの状態を確認
現在の各ブランチでのファイルの状態を見てみましょう。
ブランチ「master」「addTitle」にチェックアウトしてファイルを開いてみると「addData」の変更の影響を受けていないことが確認できます。
スポンサードサーチ
3.まとめ
このようにブランチで行われた変更は他のブランチに影響を及ぼすことがありません。
このため各ブランチではそれぞれで独立して変更作業が出来ます。
ブランチは複数のメンバがそれぞれ並行して更新作業を行うチーム作業に威力を発揮します。
この時大事なのはコミットメッセージは面倒でもしっかり他の作業者に内容が伝わるよう記録することが大切です。時間が経つと自分で行った作業内容すら記憶があいまいになるものです。
ブランチでの更新作業が完了したら分岐元のブランチに反映(マージ)します。
マージの方法については次の記事で解説していますので引き続きご覧になってください。
【初めてのgit&Sourcetree】初心者でも扱いやすいSourcetreeのインストール方法
【初めてのgit&Sourcetree】ローカルリポジトリの作成と変更をコミットする手順
【初めてのgit&Sourcetree】Sourcetreeで変更管理してみよう【いろんなコミット】
【初めてのgit&Sourcetree】同時に変更作業を行える機能【ブランチ】
【初めてのgit&Sourcetree】ブランチの変更を分岐元に反映させる手順【マージ】
【初めてのgit&Sourcetree】別ブランチで同じ行を変更したら【コンフリクト】
【初めてのgit&Sourcetree】変更管理の対象外にする【.gitignore】
【初めてのgit&Sourcetree】githubを理解してアカウントを作成しよう。
【初めてのgit&Sourcetree】githubにリモートリポジトリを作成する
【初めてのgit&Sourcetree】ローカルリポジトリをリモートリポジトリに反映させる方法。【プッシュ】
【初めてのgit&Sourcetree】ローカルリポジトリをリモートリポジトリの最新状態に同期する。【プル】
【初めてのgit&Sourcetree】リモートリポジトリを使おう。【フォーク】