全力で怠けたい

怠けるために全力を尽くしたいブログ。

git diff で特定のパスの差分は表示しないやり方のメモ。

git diff で特定のパスの差分は表示しないやり方のメモ。

git diff コマンドは任意のコミット間での差分を表示するコマンドでこんな感じに使える。以下の例は差分が多くなるので --stat オプションを指定して差分があるファイルの名前だけ表示している。

$ git diff --stat 2d5ff09^..
 README.md       | 21 +++++++++++----------
 README_ja.md    | 21 +++++++++++----------
 api.go          | 18 ++++++++++--------
 graph.go        | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 pixel.go        | 45 +++++++++++++++++++++++++++++++++++++++------
 user.go         | 22 +++++++++++++++++++---
 user_profile.go |  8 +++++++-
 webhook.go      | 30 ++++++++++++++++++++++++++----
 8 files changed, 194 insertions(+), 52 deletions(-)

git diff コマンドは差分を表示する対象のパスを指定するところで :(exclude)<パス> みたいにすると特定のパスの差分は表示しないようにできる。

たとえば :(exclude)README* を指定すると README.mdREADME_ja.md の差分が表示しなくなる。

$ git diff --stat 2d5ff09^.. -- ':(exclude)README*'
 api.go          | 18 ++++++++++--------
 graph.go        | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 pixel.go        | 45 +++++++++++++++++++++++++++++++++++++++------
 user.go         | 22 +++++++++++++++++++---
 user_profile.go |  8 +++++++-
 webhook.go      | 30 ++++++++++++++++++++++++++----
 6 files changed, 172 insertions(+), 32 deletions(-)

(exclude) はタイプ数が多いけど (exclude) は短縮形の ! を使うとタイプ数はかなり減らせる。

$ git diff --stat 2d5ff09^.. -- ':!README*'
 api.go          | 18 ++++++++++--------
 graph.go        | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
 pixel.go        | 45 +++++++++++++++++++++++++++++++++++++++------
 user.go         | 22 +++++++++++++++++++---
 user_profile.go |  8 +++++++-
 webhook.go      | 30 ++++++++++++++++++++++++++----
 6 files changed, 172 insertions(+), 32 deletions(-)

以上。