add & commit | ファイルのコミットログを作成する (★)
難易度 :star:
概要
git add FILE
で次のコミットログにFILEを含めるgit commit
でコミットログを作成する
例題 (リポジトリ: git-drill/add-and-commit)
:computer:
list.txt
に- banana
というテキストを追加した:octocat: 変更の内容を履歴として保存したい。
例題の模範回答
git status
で、list.txt
が変更された状態(modified)であることを確認。git diff
で、変更内容が表示されることを確認。git add list.txt
で、変更内容を次のコミットに含める。git diff
で、変更内容が表示されなくなったことを確認。git diff --staged
で、変更内容が表示されることを確認。git commit -m "new item: banana"
で、コミットを作成。git log
で新しいコミットが追加されていることを確認。git diff
で新しい変更がないことを確認。
例題解説
コミットは、git上での変更箇所のまとまりです。 ファイルを変更した場合には、変更内容を git commit
コマンドでコミットに記録することができます。
ただしgit commit
を実行する前に、次のコミットに変更箇所を含めることを事前にgitへ伝える必要があります。 そこで git add
コマンドを使って、次のコミットに変更を含めるようgitに指示します。 今回は list.txt
に加えた変更を、次のコミットに含めるようを指示しました。
またgit add list.txt
の実行前後で git diff
コマンドの結果が異なっています。 これはgit add
によって、次のコミットに変更を含めることが確定したため、通常のdiff
では表示されなくなったためです。 コミット予定の変更内容を確認したい場合にはgit diff --staged
を実行します。
そして git commit
後に git diff
を実行しても変更差分が表示されなくなり、無事にコミットが作成されたことがわかります。 本例題では1ファイルの変更でコミットを作成しましたが、複数のファイルを変更した場合も同じ方法でコミットが作成できます。 詳しくは演習問題で試してみましょう。
なお git commit -m
を git commit
(-m
なし)で実行した場合、コミットメッセージを編集するためのエディタ(vim)が起動します。 vimは他のエディタと異なり特殊なコマンドによる操作が必要になります。 操作方法が分からない人はvimの画面で :q!
と入力して画面を閉じましょう。
演習 (リポジトリ: 例題と同じ)
演習1
例題に続けて list.txt
に自分の好きなように変更を加え、例題回答と同じ手順でコミットを作成してください。 これを慣れるまで繰り返してみましょう。
演習2
list.txt
をコピーした新しいリストlist2.txt
を作成して、任意の内容を書き込みコミットしてください。 また前後でgit diff
も試してみましょう、例題の場合と何が違うでしょうか。
演習3
list.txt
と list2.txt
の両方に変更を加えた状態で、git add list.txt
を実行しましょう。 どんな状態になるでしょうか。 また続けてコミットした場合には、どんな内容がコミットに記録されるでしょうか。
演習4
好きな画像ファイルをリポジトリに追加しましょう。 このときgit diff
では何が表示されるでしょうか。
演習の模範回答
こちらの動画で回答を確認してください(テキストでの解説はありません)
Last updated