LoginSignup
0
0

git diffについてまとめた

Posted at

インデックスとワークツリーの差分

git diff

一番シンプル。
「インデックス」とはコミットするファイルを格納する場所です。
「ワークツリー」は開発作業を行っているディレクトリを指します。
git addしてワークツリーからインデックスにファイルを格納することを「ステージング」と言います。

コミットとワークツリーの差分

git diff <SHA-1> or HEAD

最新のコミットの場合はHEAD、それ以外は(コミットオブジェクトのオブジェクト名)
※SHA-1とは?↓コレ
スクリーンショット 2023-10-26 21.45.38.jpg

参考:gitで特定のcommitバージョン/リビジョンを指すコレをなんと呼ぶか問題

インデックスとHEADの差分

git diff --cached
git diff --chached HEAD

git diffの基本は「ワークツリー」に対しての変更を表示します。
ですが、--cached(--staged)オプションを利用することで、インデックスとHEADの比較を行います。

ブランチ間の差分を調べる

git diff dev..testing

devからtestingの変更差分が表示される。
※逆にしても結果は同じ(プラスかマイナスかの表示が逆転する)

コミット間の差分も確認できる

git diff SHA1..SHA2

リモートとの差分

git diff HEAD..origin/branch

pullする前に、ローカルとリモートの差分を確認できます。
HEAD..origin/branchの右側が最新とみなされるため、pushするときはorigin/branch..HEADにします。

あるコミットの差分

git diff SHA1^..SHA1

同じSHA同士で比較すれば、差分がわかる裏技的な方法。
^が一つ前のコミットを指しています。

オプション系

差分の数だけ見る

git diff --stat

差分のあるファイル名だけ見る

git diff --name-only

改行コード、空白を無視

git diff -w

空行無視

git diff --ignore-blank-lines

変更点の前後に表示される行数を変える

git diff -U0

単語単位で比較する

git diff --color-words

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0