“はじめのGit”――超基本的な作業フローと5つのコマンド:こっそり始めるGit/GitHub超入門(2)(1/3 ページ)
本連載では、バージョン管理システム「Git」とGitのホスティングサービスの1つ「GitHub」を使うために必要な知識を基礎から解説していきます。今回は、Gitの基本的な作業フローに登場する3つの場所について図を交えて解説し、フローごとにコマンドの使い方を紹介します。
まずは、とにかく手を動かして試してみないと
本連載「こっそり始めるGit/GitHub超入門」では、バージョン管理システム「Git」とGitのホスティングサービスの1つ「GitHub」を使うために必要な知識を基礎から解説していきます。具体的な操作を交えながら解説していきますので、本連載を最後まで読み終える頃には、GitやGitHubの基本的な操作が身に付いた状態になっていると思います。
連載第2回目の本稿のテーマは「Gitの基本的な作業フローを学ぶ」です。
前回の「初心者でもWindowsやMacでできる、Gitのインストールと基本的な使い方」でも「Gitの基本的な作業フロー」を扱いましたが、かなり急ぎ足な解説となってしまいました。今回は、作業フローの各要素について、前回よりも詳しく解説していきます。
「Gitのインストール」や「初期設定」については、前回の記事で解説したので、そちらを参考にしてください。また「バージョン管理システムそのもの」「Gitと他のバージョン管理システムとの違い」などについては、記事「ガチで5分で分かる分散型バージョン管理システムGit」を参照してください。
Gitの基本的な作業フロー
バージョン管理を利用したソフトウェア開発では「バグ修正の完了」「機能の追加完了」などの「ある特定のタイミング」ごとに各ソースコードの状態をリポジトリに保存します。Gitを使用する場合、「ファイルの変更」から「ファイルの状態の保存」までの1サイクルの間に以下の3つの操作を行うことになります。
- 「作業ディレクトリ」上のファイルを変更する(あるいはファイルを新たに追加する)
- 変更済みのファイルをステージする
- 「git add」コマンドを使用して「変更済みのファイル」を「ステージングエリア」に追加する
- ステージ済みのファイルをコミットする
- 「git commit」コマンドを使用して、手順2でステージしたファイルの「スナップショット」を「Gitリポジトリ」に保存する
これが「Gitの基本的な作業フロー」です。
Gitの基本的な作業フローに登場する3つの場所
上記「作業フロー」で登場した「場所」を整理すると、以下の通りになります。
図1 Gitの基本的な作業フローに登場する3つの場所
- Gitリポジトリ(Git Repository)
- ファイルのスナップショットなどを保存する領域
- 実態は「作業ディレクトリ」の中の「.gitディレクトリ」
- 作業ディレクトリ(Working Directory)
- ファイルの編集作業を行うディレクトリ
- Gitを使ったバージョン管理では、作業ディレクトリ内のファイルの変更履歴を保存していく
- ステージングエリア(Staging Area)
- 「作業ディレクトリ」と「Gitリポジトリ」の中間に存在する領域。「インデックス」と呼ばれることもある
- コミットする準備ができたファイルはここに追加する
作業ディレクトリ内のファイルの状態
また、「作業ディレクトリ」内のファイルの状態を整理すると、以下の通りになります。
図2 作業ディレクトリ内のファイルの状態
- 追跡済み(tracked):Gitが変更を追跡しているファイル
- 未変更(unmodified)
- スナップショットがリポジトリに保存されているファイル
- 変更済み(modified)
- Gitが変更を追跡しているが、変更がリポジトリに保存されていないファイル
- ステージ済み(staged)
- ステージングエリアに追加され、次回コミットの対象となっているファイル
- 未追跡(untracked):Gitが変更を追跡していないファイル
Gitのコマンドラインツールを使う利点
本連載では、基本的にコマンドラインツールを使ってGitの操作を解説していく予定です。コマンドラインツールを使う場合の利点には以下のようなものがあります。
- Gitのコマンド群を全て実行できる
- 環境によらず、同じ手順に沿って操作できる
Copyright © ITmedia, Inc. All Rights Reserved.