Gitでブランチを作成する方法

    • このページをはてなブックマークに追加

    公開日:2017年04月12日 最終更新日:2019年09月26日

    ソフトウェアの開発現場では、同一プロジェクト内のメンバーが同時に複数の機能を追加したり、バージョン管理をすることがあります。 このような平行作業を管理するのに便利な Git(ギット)の「ブランチ」という機能をご紹介しましょう。

    目次

    1. ブランチとは?

    バージョン管理の際に、マスターとする履歴から分岐して記録するための機能を「ブランチ」と言います。 プロジェクト中に追加機能が発生した場合など、本来の開発作業に影響を与えずに同じリポジトリの中で複数の変更を加えたり、追加機能に問題がないことを確認してから、マスター履歴にマージするという事も出来ます。 ブランチの仕組みを説明する前に、まずはGitのデータを格納する仕組みについて確認してみましょう。

    「Git-ws」フォルダー内にはfirst commit 後に編集を終え、2回目のコミットが出来る状態(ステージングエリアに登録されたファイルがある状態)です。

    ●「Git-ws」フォルダー

    「git status」コマンドで状態を確認してみましょう。

    ●[git status]

    [email protected] MINGW64 ~/Documents/Git-ws (master)
    $ git status
    On branch master
    Changes to be committed:
    (use "git reset HEAD ..." to unstage)
    modified: git-sample1.txt

    「git-sample1.txt」が編集された状態ですので、この変更をコミットしてみます。

    ●[git commit]

    [email protected] MINGW64 ~/Documents/Git-ws (master)
    $ git commit -m "second commit MSG"
    [master 8b17b87] second commit MSG
    1 file changed, 3 insertions(+)

    コミットすると直近のコミットへのポインターが作成されます。「git log」で履歴を確認してみましょう。

    ●[git log]

    [email protected] MINGW64 ~/Documents/Git-ws (master)
    $ git log
    commit 8b17b87ea7f89b48a32baefb55de932a15158383
    Author: Taro Yamada
    Date: Thu Apr 13 17:27:22 2017 +0900
    second commit MSG

    commit 5ffe5ecb4f6e64765a7b26cbd204568030708287
    Author: Taro Yamada
    Date: Thu Apr 13 17:04:10 2017 +0900
    first commit MSG

    git initで初期化をすると、デフォルトブランチの「master」が作成されます。
    [email protected]~”から始まるプロンプト行に「(master)」と表示されますが、現在作業のブランチが「(master)」であることを表しています。2番目のコミット(commit 8b17b87)作成時に、一番最初のコミットIDの情報(commit 5ffe5ec~)を保持し、masterブランチも2番目のコミットに進みます。3回目のコミット、それ以降のコミットも同様にポインターの作成とブランチが移動して行くことで履歴の管理をしています。

    ●(master)ブランチ

    同一リポジトリ内で機能の追加をする場合などに現在までの作業内容とは切り離して管理をしたい場合、新たな「ブランチ」を作成する事でマスターの作業内容を続けながら追加機能の作業を進める事ができます。次の章でその方法について確認してみましょう。

    ▲ページトップへ戻る

    2. ブランチを作成する【git branch】

    デフォルトのmasterブランチから分岐するには「git branch [ブランチ名]」コマンドを実行します。

    ●[git branch]

    [email protected] MINGW64 ~/Documents/Git-ws (master)
    $ git branch func1

    ブランチ作成のメッセージなどは表示されませんが内部できちんと作成されていますので「git log」で確認してみましょう。

    ●[git log]

    [email protected] MINGW64 ~/Documents/Git-ws (master)
    $ git log --oneline --decorate --graph --all
    * 8b17b87 (HEAD -> master, func1) second commit MSG
    * 5ffe5ec first commit MSG

    「8b17b87」のコミット後に新規ブランチの「func1」が作成されたのが分かります。

    ●(func1)ブランチの作成

    新規ブランチを作成しましたが、プロンプトの表示は「(master)」のままです。このまま作業を続けても今までと同じくmasterブランチ上で作業をすることになりますので、新規ブランチへの切り替え作業をする必要があります。

    ▲ページトップへ戻る

    3. ブランチを切り替える【git checkout】

    デフォルトのmasterブランチから、新しく作成した「func1」ブランチに切り替えるには「git checkout [ブランチ名]コマンドを実行します。

    ●[git log]

    [email protected] MINGW64 ~/Documents/Git-ws (master)
    $ git checkout func1
    Switched to branch 'func1'

    [email protected] MINGW64 ~/Documents/Git-ws (func1)

    プロンプトの表示が「(func1)」に変わりました。「git log」で確認してみましょう。

    ●[git log]

    [email protected] MINGW64 ~/Documents/Git-ws (func1)
    $ git log --oneline --decorate --graph --all
    * 8b17b87 (HEAD -> func1, master) second commit MSG
    * 5ffe5ec first commit MSG

    ●(func1)ブランチへの切り替え

    「HEAD」が「func1ブランチ」を指しています。ブランチを切り替え以降の作業履歴は「(func1)」に記録されます。

    ▲ページトップへ戻る

    【関連文書】 WindowsにGitをインストールする方法
    【関連文書】 Git for Windows の使い方 ~準備編~
    【関連文書】 Git の使い方 ~リポジトリの作成とコミット~
    【関連文書】 Git の使い方 ~リポジトリへ変更内容を記録する方法~
    【関連文書】 git add の取り消し方法
    【関連文書】 git コマンド ~コミットの取り消し~

    最新案件情報をチェック!

    月額単価50万円〜90万円
    勤務地 東京都 渋谷区
    年収500万円〜900万円
    勤務地 東京都 港区
    年収350万円〜600万円
    勤務地 東京都 港区
    • このページをはてなブックマークに追加

    おすすめ記事

  • ピックアップ

    フリーランス

    【JavaScript/GO】アプリ開発エンジニア ★eスポーツアプリの開発

    月額単価 :50万円〜90万円

    【業務内容】 自社サービスとして展開しているeスポーツアプリの開発に携わっていただきます。 【環...

    正社員

    【SE】プロジェクトリーダー|アプリケーションの企画・設計

    年収 :500万円〜900万円

    【主な仕事内容】 お客様・パートナーからのヒアリングから実現可能なシステム/アプリケーションを企画...

    株式会社テクノモバイル

    フリーランス

    【Ruby/HTML5】サーバサイドエンジニア ★Webサイト内検索サービスのバックエンド開発

    【業務内容】 自社でWebサイト内検索サービスを展開している企業内で下記業務をメインに対応していただ...

    正社員

    【PHP/MySQL】WEBプログラマ|自社サービスの開発エンジニア

    年収 :350万円〜600万円

    【仕事内容】 モバイルキャリア、iOS、Android向けに配信されるコンテンツの開発、VR/AR/MRやその他自...

    株式会社メディア工房