Bagaimana cara menonaktifkan git pager tetapi hanya untuk perintah tertentu?

14

Saya suka memiliki pager diaktifkan git logmisalnya, tetapi bukan git diffkarena saya memiliki alat diff visual saya sendiri yang muncul, dan saya benci harus menekan 'q' di baris perintah setelah diff dilakukan dengan. Apakah ada cara untuk melakukan ini?

CaptSaltyJack
sumber
Kemungkinan sama pada SO: stackoverflow.com/questions/2183900/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Jawaban:

23

Anda dapat mengatur pager.diffvariabel konfigurasi untuk menonaktifkan pager untuk sub perintah tertentu. Lihat pager.<cmd>di git-config (1) .

git config --global pager.diff false

Biarkan --globaljika Anda hanya ingin mengubah konfigurasi ini untuk repositori saat ini.

Chris Johnsen
sumber
3
Untuk menonaktifkan untuk doa tertentu: git -c pager.diff=false log ....
mjs
0

Bukan solusi yang bagus, tetapi Anda bisa memiliki git wrapper yang menentukan perintah apa yang Anda jalankan dan menyalurkan output melalui cat untuk menghilangkan deteksi terminal.

#!/bin/sh
case "$1" in)
  diff) git "$@" | cat;;
  *) exec git "$@";;
esac

Tentu saja program contoh saya sepenuhnya braindead. Anda perlu melewati opsi alih-alih mengkodekan "$ 1" dalam program.

Seth Robertson
sumber