ファイルをコミットする
Gitリポジトリにファイルを追加し、コミットする方法を学びましょう。
コミットとは?
コミットとは、Gitリポジトリに変更を記録することです。
コミットを行うことで、ディレクトリやファイルの変更履歴をGitのリポジトリに保存します。
Gitでは変更履歴であるコミットを何回も積み重ねていくことになります。
ファイルをコミットするための準備
Gitリポジトリにファイルを追加して、コミットする手順を説明します。
コミットするための準備として、ファイルを作成しましょう。
前回のレクチャーでgit-practiceというディレクトリを作成し、Gitリポジトリを初期化しました。
カレントディレクトリがgit-practiceであることを確認してください。
pwd次のように表示されれば、カレントディレクトリはgit-practiceです。
/home/username/git-practice次に、git-practiceディレクトリ内に新しいファイルを作成します。
echo "Hello, Git!" > hello.txtこのコマンドは、hello.txtというファイルを作成し、その中に「Hello, Git!」というテキストを書き込みます。
Gitの状態を確認する
次に、Gitの状態を確認します。
Gitの状態を確認するには、git statusコマンドを使用します。
git status次のように表示されれば、hello.txtファイルが新規作成され、まだコミットされていないことがわかります。
git statusOn branch main
No commits yet
Untracked files: (use "git add <file>..." to include in what will be committed) hello.txt
nothing added to commit but untracked files present (use "git add" to track)Gitの3つのステージ
コミット、つまりリポジトリに保存する前にGitの3つのステージ(状態)について学びましょう。
GitはGoogleスプレッドシートのように自動保存されたり、エクセルのように保存ボタンを押すと保存されるわけではありません。
Gitでは、ファイルの状態は以下の3つのステージに分かれています。
- ワーキングツリー
- 作業中のファイルが存在する場所です。
- ここでは、
hello.txtファイルが作成されている状態です。
- ステージングエリア
- コミットするためにファイルを一時的に保存する場所です。
git addコマンドでファイルをステージングエリアに追加します。
- リポジトリ
- コミットされたファイルが保存される場所です。
git commitコマンドでステージングエリアのファイルをリポジトリに保存します。

つまり、Gitでコミット(変更履歴を記録)するには、ステージングエリアを経由する必要があります。
ステージングエリアがあることで、ワーキングツリー内の必要のないファイルを含めずにコミットを行うことができます。

ファイルをステージングエリアに追加する
Gitの3つのステージを理解したところで、実際にファイルをコミットしてみましょう。
現状は次のような状態です。

ワーキングツリーにあるhello.txtファイルをステージングエリアに追加するために、
git addコマンドを使用します。
git add hello.txtgit addコマンドでhello.txtファイルをステージングエリアに追加しました。

git statusコマンドを実行して状態を確認してみましょう。
git status次のように表示されれば、hello.txtファイルがステージングエリアに追加されたことがわかります。
git statusOn branch main
No commits yet
Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: hello.txtファイルをコミットする
ステージングエリアに追加したファイルをリポジトリにコミットするために、git commitコマンドを使用します。
git commit --message "hello.txtを追加"--messageオプションは、コミットメッセージを指定するためのものです。
--messageは-mと省略して書くこともできます。
つまり、次のように書いても同じです。
git commit -m "hello.txtを追加"Gitではリポジトリにコミットする際に、変更内容を説明するメッセージを付けることができます。
コミットメッセージは、後で変更履歴を確認する際に役立ちます。
コミットが成功すると、次のようなメッセージが表示されます。
git commit -m "hello.txtを追加"[main (root-commit) a6ab34c] hello.txtを追加 1 file changed, 1 insertion(+) create mode 100644 hello.txtこれで、hello.txtファイルがリポジトリにコミットされました。
コミットしたことで3つのステージは次のように変化します。

git statusコマンドを実行して状態を確認してみましょう。
git status次のように表示されれば、コミットが成功し、ワーキングツリーはクリーンな状態になっています。
On branch mainnothing to commit, working tree cleanこれで、hello.txtファイルがリポジトリにコミットされ、変更履歴が保存されました。