ファイルをコミットする
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.txt
git 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
ファイルがリポジトリにコミットされ、変更履歴が保存されました。