git で diff を取る時、空白(スペース) に関わる変更を無視したい時がある。コードの可読性を上げるためとか、インデントを修正しただけとか、行末のスペースを消しただけとか、そういった「空白まわり」の変更が入っている時。スペースの変更を気にせず、メインの修正にだけ注目したい場合、空白を無視するオプションを使うと便利。
git diff に -b オプションを付けるか、--ignore-space-change オプションを付ける。
サンプル
空白無視 diff のサンプル。まずは普通に diff を取ってみる。
$ git diff diff --git a/chatwork.el b/chatwork.el index b3a96e5..5f8cd9c 100644 --- a/chatwork.el +++ b/chatwork.el @@ -249,9 +249,9 @@ CALLBACK sould be a callback function" (goto-char (point-max)) (mapc (lambda (plist) (let ((message-id (plist-get plist :message_id)) - (account-id (plist get (plist-get plist :account) :account_id) - (send-at (plist-get plist :send_time)) - (body (plist-get plist :body))) + (account-id (plist-get (plist-get plist :account) :account_id)) + (send-at (plist-get plist :send_time)) + (body (plist-get plist :body))) (insert chatwork-page-delimiter (number-to-string message-id) " " (number-to-string account-id) " "
メインの修正は最初の一行だけ。続く 2 行は alignment を揃えただけ。
ここで -b オプションを付けて diff を取ってみる。
$ git diff -b diff --git a/chatwork.el b/chatwork.el index b3a96e5..5f8cd9c 100644 --- a/chatwork.el +++ b/chatwork.el @@ -249,7 +249,7 @@ CALLBACK sould be a callback function" (goto-char (point-max)) (mapc (lambda (plist) (let ((message-id (plist-get plist :message_id)) - (account-id (plist get (plist-get plist :account) :account_id) + (account-id (plist-get (plist-get plist :account) :account_id)) (send-at (plist-get plist :send_time)) (body (plist-get plist :body))) (insert chatwork-page-delimiter
空白修正以外の diff が取れた。このコミットの変更の本質が浮かび上がる。変更点が分かりやすい。便利!
No comments:
Post a Comment