🫥

LinuxでもMacOSみたいにgit diffの最後の表示を残したい

2023/02/04に公開

ウィンドウマネージャーやディストリビューションによりそうだが、少なくとも私がつかっている
Gnomeの環境(Ubuntu, Manjaro)だとgit diffで最後に表示された結果がターミナルに残らなかった。

git diffのlessを抜けると

このようになにも残らない。

仕事でつかっているMacOSだとターミナルに残ってくれるのでなんとかしたい!

結論

ホームディレクトリ直下の.gitconfigを以下のように設定する。

[pager]
  diff = less -X

もしくは

git config --global pager.diff "less -X"

経緯

なんとかならないかとlessを調べたところ-Xオプションでやりたいことができることが判明。
https://atmarkit.itmedia.co.jp/flinux/rensai/linuxtips/524noclearless.html

git diffのlessにこのオプションを付与できればとおもったらもちろんちゃんと方法があった。
https://medium.com/pragmatic-programmers/git-config-core-pager-807e17d64243


ちゃんと残るようになってよかった。

追伸

git diff以外にもgit logやgit branchなどすべてのpagerで適用させたい場合は

[core]
  pager = less -X

git config --global core.pager "less -X"

とcoreに変更を加える。

Discussion