変更をcommit(git add, git commit)

git commitとは?

コミット(commit)とは、リポジトリに格納される一つひとつの履歴のことです。コミット(commit)によって、

 ・コミットメッセージ
 ・ユーザー名
 ・メールアドレス

 がGitに格納されます。

ポイント ❕

コミットメッセージは、共同で開発するチーム、将来そのシステムを触る人、未来の自分にあてたメッセージです。わかりやすく書きましょう。

実際にcommitしよう!

順番通り、下記のページを読んでからこのページを見ている場合、実はすでにコミットの一連の流れを経験しています。ですが、詳しく説明しなかったので、もう一度おさらいのつもりで説明します。

新規作成したファイルをコミットする

まずは、中身が空のファイルを作成します。

$ touch new.text
$ ls
   new.text

touchコマンドは、ファイルやディレクトリのタイムスタンプを変更するコマンドです。
存在しないファイルを指定すると、中身が空のファイルを作成してくれます。
とても便利なので必ず覚えておきましょう。

新規作成したファイルをコミットします。gitのコマンドに慣れないうちは、こまめに “git status" する癖をつけましょう。 “git status" は現在の状態を確認するコマンドです。

$ git status
   On branch master
   Untracked files:
   (use "git add <file>..." to include in what will be committed)
   new.text
   nothing added to commit but untracked files present (use "git add" to track)
$ git add .
$ git commit -m "add new file."
  [master 612fa15] add new file.
  1 file changed, 0 insertions(+), 0 deletions(-)
  create mode 100644 new.text
$ git status
   On branch master
   nothing to commit, working tree clean

“git add ." は新規作成された、または変更されたファイルをaddします。削除されたファイルはaddしません。
 ちなみに、下記のようにファイル名を直接指定してもOKです。

$ git add new.text

git statusで現在の状態をこまめに確認するのは、
Gitを効率良くマスターするためにも重要なことだよ!

編集したファイルをコミットする

先ほど作成したファイルを適当に編集し、下記手順でcommitします。

$ git add .
$ git commit -m "modify text."

ファイルを新規作成した場合と同じですね。

ファイルを編集した場合、筆者のおすすめは、 “git add -p" です。

$ git add -p
   diff --git a/new.text b/new.text
   index e69de29..cf3b729 100644
   --- a/new.text
   +++ b/new.text
   @@ -0,0 +1,4 @@
   +編集しました
   +hogehoge
   +
   +てすてす
$ Stage this hunk [y,n,q,a,d,/,e,?]? y

変更箇所を確認しながらaddすることが可能です。
変更箇所が多岐にわたる場合や、不要なファイルの変更がある時に威力を発揮します。
git add -p で必要な変更のみを “y" として、不要な変更は下記のようにチェックアウトすることでまとめて破棄することができます。

$ git checkout .

削除したファイルをコミットする

削除したファイルをコミットするには、直接ファイル名を指定してaddするか、下記のように “-u" オプションを使用します。

$ rm new.text
$ git status
   On branch master
   Changes not staged for commit:
   (use "git add/rm <file>..." to update what will be committed)
   (use "git checkout -- <file>..." to discard changes in working directory)
   deleted: new.text
   no changes added to commit (use "git add" and/or "git commit -a")
$ git add -u
$ git commit -m "delete file."

まとめてaddする

“git add ." や “git add -u" を紹介しましたが、筆者は圧倒的に “git add -A"を使用する比率が高いです(※補足で書いた “git add -p" がダントツですが…)

「git add -A」 = 「git add .」 + 「git add -u」 です。

つまり、「新規で追加したファイル、編集したファイル、削除したファイル」の全てをまとめてaddすることができます。

$ git add -A

以上で、基本的なcommitの流れはOKだよ!
addには他にも様々なオプションがあるよ。
基礎編や発展編で扱うからwaiting…!