Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
git commit するまでに自分がやっていること

コミットするまでの流れ

前回のコミットから何も変更を加えていない状態。

$ git status
# On branch masternothing to commit, working directory clean

エディタでファイルを編集する

$ vim app/views/hello/list.html

編集後、git statusで変更部分を確認。

$ git status

# On branch master
# Changes not staged for commit:#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)#
#       modified:   app/views/hello/list.html
#
no changes added to commit (use "git add" and/or "git commit -a")

差分を確認

$ git diff

今回はCD-ROMの項目を削除した、ということを確認できる。

diff --git a/app/views/hello/list.html b/app/views/hello/list.htmlindex a0c13ea..b6de0e7 100644
--- a/app/views/hello/list.html
+++ b/app/views/hello/list.html
@@ -1,7 +1,7 @@
 <table border="1">
   <tr>
     <th>ISBNコード</th><th>書名</th><th>価格</th>
-    <th>出版社</th><th>刊行日</th><th>CD-ROM</th>
+    <th>出版社</th><th>刊行日</th>
   </tr>

   <% @books.each do |book| %>
@@ -11,7 +11,6 @@
     <td><%= book.price %>円</td>
     <td><%= book.publish %></td>
     <td><%= book.published %></td>
-    <td><%= book.cd %></td>
   </tr>
   <% end %>
 </table>

git add してindexに登録する。

$ git add app/views/hello/list.html


# -p オプションをつけると細かく add できる。
# y(yes), n(no) でaddするかどうか選択できる。
# s でさらに細かくできる
$ git add -p app/views/entries/edit.html.haml

git statusで確認

$ git status

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   app/views/hello/list.html
#

自分がインデックスに追加したものが意図しているものかどうか、 git diff --cached でコミット前に差分を確認する

$ git diff --cached
diff --git a/app/views/hello/list.html b/app/views/hello/list.html
index a0c13ea..b6de0e7 100644
--- a/app/views/hello/list.html
+++ b/app/views/hello/list.html
@@ -1,7 +1,7 @@
 <table border="1">
   <tr>
     <th>ISBNコード</th><th>書名</th><th>価格</th>
-    <th>出版社</th><th>刊行日</th><th>CD-ROM</th>
+    <th>出版社</th><th>刊行日</th>
   </tr>

   <% @books.each do |book| %>
@@ -11,7 +11,6 @@
     <td><%= book.price %>円</td>
     <td><%= book.publish %></td>
     <td><%= book.published %></td>
-    <td><%= book.cd %></td>
   </tr>
   <% end %>
 </table>

コミットする(-v をつけるとコミットメッセージを書く時に差分が表示される)

$ git commit -v

CD-ROM付属の雑誌を扱わなくなったため、CD-ROMの項目を削除した

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   app/views/hello/list.html
#
diff --git a/app/views/hello/list.html b/app/views/hello/list.html
index a0c13ea..b6de0e7 100644
--- a/app/views/hello/list.html
+++ b/app/views/hello/list.html
@@ -1,7 +1,7 @@
 <table border="1">
   <tr>
     <th>ISBNコード</th><th>書名</th><th>価格</th>
-    <th>出版社</th><th>刊行日</th><th>CD-ROM</th>
+    <th>出版社</th><th>刊行日</th>
   </tr>

   <% @books.each do |book| %>
@@ -11,7 +11,6 @@
     <td><%= book.price %>円</td>
     <td><%= book.publish %></td>
     <td><%= book.published %></td>
-    <td><%= book.cd %></td>
   </tr>
   <% end %>
 </table>

コミットが新しく追加されているか確認

$ git log

tigを使う(macでhomebrewを使っている場合 brew install tig でインストールできる)

$ tig  

git commit するまでに気をつけていること

  • 未来の自分、自分以外の人が今からcommitする内容を見て理解できるか?理解するのに時間がかからないか?
  • コミットの粒度は適切?(typoの修正と機能の追加のコミットは分ける)
  • コミットメッセージは適切か?(誰が、何を、なぜしたか)
  • 無駄なゴミファイルやtypoは無い?

その他

gitconfig

一回一回 git diff --cached とか打つのはだるいので .gitconfigを編集してタイプ数を減らす。

$ vim ~/.gitconfig

自分が使いやすいように設定する。

[alias]
    st   = status
    ci   = commit
    dc   = diff --cached

git 資料

Web

入門
コミットの仕方

他にもたくさんあります。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment