xargs git:ユーザー入力をスキップする

xargs git:ユーザー入力をスキップする

xargsgitコマンドを再帰的に呼び出す関数があります。

今すぐ電話をかけると、gitr log最後までEnterを押すか、xargs次の通話を実行するにはqを押す必要があります。

xargsユーザー入力をスキップするか、すべてを一度に出力するように指示できますかless

答え1

実行せずにすべてをダンプするには、gitこのオプションを使用して呼び出すことができます。次は--no-pagerlessマニュアルページ:

--呼出し機なし

git出力をポケットベルにパイプしないでください。

答え2

標準入力、標準出力、またはその両方をリダイレクトしてみてください。

たとえば、

gitr log < /dev/null | cat

答え3

メッセージを表示するのはxargsではなく、それよりも少ないです。 lessはxargsではなくgitによって呼び出されます。

gitへの各呼び出しは一度に1つのリポジトリで機能するため、複数のリポジトリで作業するには、gitにポケットベルを呼び出さないように指示する必要があります。ただし、手動でポケットベルを呼び出すこともできます。

これは、gitがポケットベルを呼び出さずに対話的に呼び出すときにすべてのgit呼び出しの出力に対してポケットベルを呼び出すようにするテストされていない概念証明コードです。あなたのコードはrun_gitアクセシビリティに入ります。

gitr () {
  if [ -t 1 ]; then
    run_git \
      -ccolor.branch=always "$@" -ccolor.grep=always -ccolor.showbranch=always -ccolor.status=always \
      | ${GIT_PAGER:-less -r}
  else
    run_git "$@"
  fi
}

関連情報