SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windowsユーザー向けGit入門

Gitでブランチを操作する

Windowsユーザー向けGit入門(4)

履歴管理の概念

 ブランチの作成と切り替え方法を理解したところで、少し概念的な説明をします。

 Gitの履歴は、コミットごとにコミットオブジェクト(*1)を作成し管理しています。またコミットオブジェクトは、直前のコミットオブジェクトへの参照を持っています(図2)。

*1)

 コミットオブジェクトは、以前説明したように識別子としてSHA-1のハッシュ値を持っています。

図2:コミットオブジェクトの概念
コミットオブジェクトの概念

 例えばローカルリポジトリに、C1,C2,C3と3回コミットしたとしましょう。このとき、3回目のコミット内容であるC3は、直前のコミットであるC2を、C2はC1をと言ったようにグラフ構造で表すことができます。このように、Gitのコミットオブジェクトはすべての祖先をたどることができるように管理されています。

 さて、先ほどの操作を図示していましょう。①は、bugfixブランチを作成する前の状態です。

図3:コミットオブジェクトの概念
図3:コミットオブジェクトの概念

 ブランチとはコミットオブジェクトへのポインタに過ぎません。そして、前回も説明しましたが、HEADとは現在のブランチの最新コミットを表すポインタです。

 ②は、bugfixブランチを作成した状態です。bugfixブランチの作成直後は、masterと同じくC3をポイントしています。そしてブランチを切り替えると、③のようにHEADが指す先が切り替わります。

GUIからブランチの作成と切り替えを行う

 これらのブランチの作成、切り替えを操作をGUIで行ってみましょう。Git ExtensionsのGitブラウザを起動します。履歴ペインを見ると3回修正が行われており、最新の修正にmasterとマークされているが確認できます(図6左)。

 コンテキストメニューから[ブランチの作成]を選択します。ブランチの作成ダイアログが表示されます。新しいブランチ名を入力し、[作成]ボタンをクリックすれば完了です。

 作成直後に切り替えは、先ほど説明したcheckoutコマンドの-bオプションに相当する動作です。既定では、[作成後に切替]がオンとなっていますが、ここでは操作説明のためオフにして進めます。

図4:ブランチの作成ダイアログ
図4:ブランチの作成ダイアログ

 ブランチを切り替えるには、[Git]-[ブランチの切り替え]を選択します。[ブランチの切り替え]ダイアログが表示されるので、プルダウンリストからbugfixブランチを選択し、[切り替え]ボタンをクリックします。

図5:ブランチの切り替えダイアログ
図5:ブランチの切り替えダイアログ

 ブランチの作成、切り替えが完了すると図6右のとおりbugfixブランチが作成されていることが確認できるでしょう。ブランチ名の横三角印は、現在のブランチを示しており、ブランチが切り替わったことも確認できます。履歴左の線の部分は、先ほど説明した概念図を表しています。この時点では一直線ですが、ブランチの作成とマージなどを繰り返すと複雑になってきます。

図6:ブランチ作成前後の表示
図6:ブランチ作成前後の表示

次のページ
マージ操作

この記事は参考になりましたか?

Windowsユーザー向けGit入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト statemachine(statemachine)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7286 2013/08/05 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー