gitでバージョン管理するフォルダー内のファイルに変更があった場合、どのようにリポジトリへ反映させるのかを実際にGit Bashを使いながら確認します。
目次
1. ファイル管理の流れ
「Git の使い方 ~リポジトリの作成とコミット~」では、リポジトリの初期化からコミットまでの動きを確認しました。Gitでバージョン管理する際には、次の3つ場所(状態)をきちんと把握しておく必要があります。
●「作業ディレクトリー(ワーキングディレクトリー [Working directory])」
●「ステージング・エリア(インデックス [Staging area])」
●「リポジトリ [Repository] 」
簡単にまとめると「作業ディレクトリー」は、ファイルの追加・作成や編集を行う場所、「ステージング・エリア」は変更のあったファイルを一時保管する領域、「リポジトリ」は最終的にファイルを保存する場所です。Gitでは、作業ディレクトリにあるファイルなどが編集・追加された場合に、直接リポジトリにコミット(保存)をせず、まずはステージング・エリアに追加・編集情報を登録します。ステージング・エリアをうまく利用することで、作業ディレクトリー内でリポジトリにコミットする必要のあるファイルのみをコミットしたり、ファイルの一部の編集履歴のみをリポジトリに反映する事ができるようになります。具体的にどのような状態なのかを「Git Bash」を使って確認してみましょう。
2. 作業ディレクトリー
「Git の使い方 ~リポジトリの作成とコミット~」でリポジトリに登録した「Git-ws」フォルダーを元にファイルの追加・編集を行います。「Git-ws」フォルダーにはリポジトリに登録してあるファイル(git-sample.txt)が一つある状態です。「git init」でリポジトリの初期化をしたフォルダーが「作業ディレクトリー」になります。
Windowsのスタートメニューから[すべてのアプリ]→[Git]→[Git Bash]を選択してターミナルを起動して下さい。プロンプトに「git log」を入力して現在のファイルの履歴を確認してみましょう。
●[git log]
$ git log
commit 83e280f9e3d6959c75674eef5fa271e981aa25a1
Author: Taro Yamada
Date: Tue Feb 21 00:00:00 2017 +0900
projectX version1.0
3. ステージング・エリア(インデックス)
「Git-ws」作業ディレクトリーにファイルを一つ追加してみましょう。「git-sample2.txt」というテキストファイルを「Git-ws」作業ディレクトリーに追加します。この状態で「git status」コマンドをたたいてみます。
●[git status]
$ git status
On branch master
Untracked files:
(use "git add
git-sample2.txt
nothing added to commit but untracked files present (use "git add" to track)
●[git add]
$ git add git-sample2.txt
ファイルの状態を確認してみましょう。
●[git status]
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD
new file: git-sample2.txt
addコマンドはコミット前の新規ファイルや変更内容をステージング・エリアに登録するコマンドです。ステージング・エリアに新規ファイル:git-sample2.txt が追加されました。また括弧のなかの英文に「unstage」するには「git reset ...」コマンドを使うとあります。これは、ステージング・エリアに登録されたファイル(=ステージング・エリアにあるファイル)は「git reset ...」コマンドで取り消す(unstage)事もできますという意味です。
4. リポジトリ
新しく追加したファイルのコミットの準備が整いましたので早速「git commit -m "projextX version1.1"」とコマンドを打ってみましょう。
●[git status]
$ git status
On branch master
nothing to commit, working tree clean
commitコマンドはステージング・エリアにあるファイルの情報を「リポジトリ」に登録するコマンドです。その他に追加するファイルがあってもそれがステージング・エリアにない場合はリポジトリに登録されません。
現在のファイル情報を「git log」コマンドで見てみましょう。
●[git status]
$ git log
commit 3610105f0da8d684075a0626cc7c0be03773969f
Author: Taro Yamada
Date: Tue Feb 21 00:02:02 2017 +0900
projectX version1.0
commit 83e280f9e3d6959c75674eef5fa271e981aa25a1
Author: Taro Yamada
Date: Tue Feb 21 00:00:00 2017 +0900
projectX version1.0
二つのファイルの変更履歴が「logコマンド」で確認できます。
【関連文書】WindowsにGitをインストールする方法
【関連文書】Git for Windows の使い方 ~準備編~
【関連文書】
Git の使い方 ~リポジトリの作成とコミット~
【関連文書】
git add の取り消し方法
【関連文書】
git コマンド ~コミットの取り消し~
【関連文書】
Gitでブランチを作成する方法