SHOEISHA iD

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

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

翔泳社 新刊紹介(AD)

Gitをまったく使ったことがなくても大丈夫、基本操作と用語を解説『動かして学ぶ!Git入門』

  • X ポスト
  • このエントリーをはてなブックマークに追加

 プログラムの変更履歴などバージョン管理を行えるサービスのGit。今やエンジニアには不可欠となったGitの使い方を解説した『動かして学ぶ!Git入門』(翔泳社)が発売中です。本書はGitを使ったことがない、これから試してみようと考えている方向けの入門書。今回は本書から「Chapter1 Gitの基本」を紹介します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

本記事は『動かして学ぶ!Git入門』の「Chapter1 Gitの基本」を抜粋したものです。掲載にあたって一部を編集しています。

バージョン管理システムとは

 ソフトウェアを開発していると、プログラムにバグを入れてしまって以前のファイルの状態に戻したくなったり、そうでなくても以前のファイル内容を見たくなったりすることがあります。そんなときに便利なのがバージョン管理システムです。

 バージョン管理システムとは、ファイルの履歴を管理するシステムです。プログラマは、ファイルのこの状態をとっておきたいと思ったときに、そのファイルの内容をバージョン管理システムに入れます。この操作をチェックインといいます。このチェックインされた状態が、1つのバージョンになります。バージョンを入れる場所をリポジトリと呼びます(図1.1)。

図1.1:バージョン
図1.1:バージョン

 適当なときにチェックインしておくことで、後でその状態に戻したりできます。バージョン管理システムに入っているバージョンを取り出すことをチェックアウトといいます(図1.2)。

図1.2:チェックインとチェックアウト
図1.2:チェックインとチェックアウト

Gitでのバージョン管理

 Gitにおけるバージョンは、ファイルではなくて、あるディレクトリを根とする木(ディレクトリツリー)です。Gitではチェックインすることをコミットするといいます。

 バージョン管理の対象としているディレクトリで、現在のディレクトリツリーの状態をコミットすると、そのディレクトリツリーが1つのバージョンとなってリポジトリに入ります。Gitではこの1つのバージョンをコミットと呼びます。つまり、コミットする(動詞)と、コミット(名詞)が1つ作られるのです(図1.3)。

図1.3: Gitでのバージョン管理
図1.3: Gitでのバージョン管理

フォルダとディレクトリ

 ディレクトリは、macOSやWindowsではフォルダと呼ばれます。ディレクトリツリーは、そのフォルダの中に入っているすべてのフォルダやファイルの全体です。図1.4の左のようなフォルダの構造は、右の形のディレクトリツリーで表されます。

図1.4:フォルダの構造とディレクトリツリー
図1.4:フォルダの構造とディレクトリツリー

Gitのディレクトリ構成

 Gitでバージョン管理をしているプロジェクトのディレクトリ構成は図1.5のようになります。

図1.5:プロジェクトのディレクトリ構成
図1.5:プロジェクトのディレクトリ構成

 作業ツリーは、開発をしているディレクトリツリーです。プログラマがプログラムを編集したりコンパイルしたりする場所です。Gitは、作業ツリーのトップのディレクトリに.gitというディレクトリを作って、バージョン管理に必要な情報をここに入れます。その中にある大事なものとして、先ほど出てきたリポジトリと、ステージがあります(ステージは、ステージングエリアとか、インデックス、キャッシュなどとも呼ばれます。本書では動詞「ステージする」に合わせて簡単に「ステージ」と呼ぶことにします。)。

 ステージは、作業ツリーとリポジトリの間にある領域です。プログラマはまず、作業ツリーの内容をここにコピーします。この操作をステージするといいます。必要なファイルをすべてステージしてから、コミットします。そうすると、ステージの内容がそのコミットの内容になります。作業ツリーをそのままコミットするのでなく、このように一旦ステージに準備してからコミットするので、作業ツリーのファイルのうちコミットするものを選ぶこともできます。

 逆にチェックアウトするときにも、ステージを経由します。チェックアウトしたいコミットを指定してチェックアウトすると、そのコミットがステージにコピーされ、それがまた作業ツリーにコピーされます。これによってファイルが取り出されます。

分散バージョン管理システム

 Gitは分散バージョン管理システムと呼ばれます。分散バージョン管理システムとは、同じプロジェクトのリポジトリをネットワーク上に複数置いて管理できるバージョン管理システムのことです。複数人が同じプロジェクトで開発する際に便利です。Gitではよく図1.6のような構成で分散バージョン管理を行ないます。

図1.6:複数の開発者による分散バージョン管理
図1.6:複数の開発者による分散バージョン管理

 この構成では、リポジトリが3つあります。開発者それぞれのコンピュータにあるリポジトリと、サーバにあるリポジトリです。サーバには普通、裸のリポジトリという、ステージや作業ツリーを持たないリポジトリを置きます。開発者がそこで開発をしないためです。

 また、図1.7の構成も一般的です。この構成では、中央リポジトリに書き込めるのは管理者だけになります。

図1.7:管理者を置く構成
図1.7:管理者を置く構成

 このようにGitでは、プロジェクトの要求に応じたさまざまなリポジトリの配置が可能です。

Gitのコマンドとヘルプ

 Gitはgitというコマンドで操作します。このコマンドにはたくさんのサブコマンドがあります。たとえばサブコマンドhelpを使って、

$ git help

とすれば、使い方の説明が表示されます。また、helpの後にサブコマンドを指定すると、そのサブコマンドの説明を見ることができます。たとえばgit configというサブコマンドがあります。このサブコマンドは、

$ git config 引数…

として使います。そのヘルプは、

$ git help config

とすると見ることができます。

 gitのサブコマンドはGitコマンドと呼ばれます。つまりhelpやconfigはGitコマンドです。

演習

 git helpコマンドを実行してヘルプを表示させてみましょう。

動かして学ぶ!Git入門

Amazon SEshop その他

動かして学ぶ!Git入門

著者:冨永和人
発売日:2021年11月4日(木)
定価:2,420円(本体2,200円+税10%)

内容について
  • 基本的な機能の解説
  • ブランチを扱う機能、マージの仕方
  • 簡単なタグの使い方
  • リモートリポジトリの使い方
  • 共用リポジトリを使った共同開発の基礎

 

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
翔泳社 新刊紹介連載記事一覧

もっと読む

この記事の著者

冨永 和人(トミナガ カズト)

1966年生まれ。1994年東京工業大学理工学研究科情報工学専攻博士課程単位取得退学。1996年同専攻より博士(工学)の学位を取得。東京工科大学工学部情報工学科講師、同助教授、米国イリノイ大学アーバナ=シャンペーン校コンピュータサイエンス学科客員研究員、東京工科大学コンピュータサイエンス学部准教授な...

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

渡部 拓也(ワタナベ タクヤ)

 翔泳社マーケティング課。MarkeZine、CodeZine、EnterpriseZine、Biz/Zine、ほかにて翔泳社の本の紹介記事や著者インタビュー、たまにそれ以外も執筆しています。

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

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/15108 2021/11/11 07:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング