1. ホーム
  2. git

[解決済み] git diff を stdout に書き出すには?

2022-07-16 22:22:24

質問

デフォルトでは git diff は、すべての +- の行を標準出力に出力しますが、(debian) マシン (ssh で接続している) では git diff は私をエディタに導き(どれがそうなのか分かりませんが)、私は q を押してください。

gitの設定を確認したところ、以下のようになっています。

$ git config --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=XXX
branch.master.remote=origin
branch.master.merge=refs/heads/master
$ git config --global --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
$ git config --system --list
'/etc/gitconfig': No such file or directory

どこか見落としているところがあるのでしょうか?多分、未知のツールは、私のマシンが何かを欠いているため、フォールバックか何かですか?どんな助けでも感謝します。ありがとうございます。

どのように解決するのですか?

デフォルトでは、Git は diff 出力 (そして一般的には一画面分以上の出力) を、システムの ページャー これは、一度に一画面分の出力のみを行うユーティリティです。コマンドを実行する際にページャーを無効にしたい場合は、ページャーに --no-pager をGitに渡してください。

$ git --no-pager <subcommand> <options>

これは、あらゆるGitコマンドに対して実行することができます。

デフォルトで無効にしたい場合は をdiffのみ に設定すれば、差分ページャーを cat を実行することで

$ git config pager.diff false

デフォルトで無効にしたい場合 をすべてのコマンドに対して に設定すれば、Git Pager を cat を実行することで。

$ git config --global core.pager cat