コミット
ここではGitを使って、実際に変更を記録してみましょう。
Gitで変更を記録するには、「コミット」と呼ばれる作業をします。
いきなり、コミットの方法を説明してもいいのですが、それではコミットを理解するのは難しいので、まずGitで管理するファイルの状態について説明します。
ファイルの状態
Gitでバージョン管理するファイルは、下記の4つの状態に分けることができます。
- Untracked
- Gitの管理下にないファイル
- Unmodified
- Gitの管理下にあり現時点で変更されていないファイル
- Modified
- Gitの管理下にあり現時点で変更されているファイル
- Staged
- 次のコミットに含めるファイル
状態の下には、それぞれ簡単な説明が書いてあります。
新しいファイルを管理
Gitでバージョン管理をしていく場合、新しく作成したファイルは最初Untrackedに分類されます。
次に、その新しく作成したファイルをGitでバージョン管理しようとした場合、Stagedに状態を変化させます。
そうしたら、コミットと呼ばれる作業をして、Stagedに分類されているファイルをGitでバージョン管理できるようにします。
この時、状態はStagedからUnmodifiedに変化します。
ファイルの変更を管理
Gitで既にバージョン管理されているファイルを変更した場合、そのファイルの状態は、変更前はUnmodifiedで、変更後はModifiedに変化します。
変更後に状態がModifiedに変化したら、そのファイルの状態をStagedに変化させます。
Stagedに変化させたら、コミットします。
こうすることで、ファイルの変更をGitで管理することができます。
やってみよう
Gitでのコミットの流れはこのようになります。
では、この流れを意識して、Gitでコミットをしてみましょう。
準備
まず、WindowsならコマンドプロンプトまたはPowerShell、LinuxやmacOSならターミナルまたは端末を起動します。
次に、リポジトリの作成で作成したリポジトリまで移動します。
基本的に、Gitの操作はリポジトリの中で行うので、Gitを使うときには、WindowsならコマンドプロンプトまたはPowerShell、LinuxやmacOSならターミナルまたは端末を起動して、リポジトリまで移動します。
ファイルの作成
リポジトリ内で、バージョンを管理するファイルを用意します。
今回は、ファイルの名前は「text.txt」、ファイルの中身は下記のもので、ファイルを用意しましょう。ファイルは、リポジトリの中に保存してください。
Good morning Git!
このファイルの状態は、Untrackedになります。
状態の確認
状態の確認には、git status
というコマンドを使います。
git status
現在のファイルの状態が知りたいときには、実行してみましょう。
状態の変更
この後、ファイルのバージョンを記録するためにコミットをするのですが、コミットされるのは、状態がStagedとなっているものだけです。
そこで、text.txtをUnstagedの状態からStagedの状態にしましょう。
状態をStagedにするには、Gitのコマンドを使います。
git add text.txt
git add
というコマンドで、状態を変化させます。git add
の後には、状態をStagedにしたいファイルを指定します。もし、複数のファイルの状態を変化させたい場合は、git add .
のようにします。
コミット
ついに、コミットができるようになりました。
コミットには、git commit
というコマンドを使います。
コミットの際には、そのコミットでどのようなことをしたのかということを表す、コミットメッセージというものを書く必要があります。
コミットメッセージの書き方は、主要なものとして2つありますが、ここではオプションを使って書いてみましょう。
git commit -m "Add text.txt"
コミットメッセージは、-m
というオプションを書いて、その後にコミットメッセージをダブルクォーテーションで囲みます。
コミットが終わったので、text.txtの状態は、StagedからUnmodifiedに変わりました。
変更
次に、text.txtの中身を変更してみましょう。
このようにファイルの中身を変えてください。
Hello Git!
ファイルの状態は、UnmodifiedからModifiedに変わりました。
状態の変更
ファイルの状態をStagedに変更します。
git add text.txt
ちなみに、もし間違えて状態をStagedにした場合は、下記のコマンドで状態を戻します。
git reset text.txt
コミット
コミットをしてみましょう。
git commit -m "Update text.txt"
まとめ
コミットができるようになれば、簡単なバージョン管理であれば、することができます。
しかし、これだけではチームで使う際などには、機能が不足しています。
さらに、コミットでどのような変更をしたのかを見る方法についても説明していません。
次回以降は、これらのことについて説明していきます。