info や man などのページャーベースのドキュメント システムを使用せずに、Git にヘルプを表示するように指示するにはどうすればよいですか?

info や man などのページャーベースのドキュメント システムを使用せずに、Git にヘルプを表示するように指示するにはどうすればよいですか?

デフォルトでは、Unix システムでは、git は を通じてヘルプを表示しますman。そのためにはページャーを読み込む必要があり、ワークフローが台無しになります。 と入力すると、オプションが短い要約で表示されるようにしたいのですが、コマンドの後に とgit branch --help入力して要約を表示し、man ページを表示するには と入力することに慣れています。オプションの要約を要求するときに man ページは必要ありません。要約に ではなくを使用するように Git に指示するにはどうすればよいでしょうか。--helpman <command>--help-h

答え1

(1) gitソースのオプション処理を変更し、再コンパイルします。gitをアップグレードするたびにこれをやり直す必要があります。

(2)実際のバイナリの代わりに呼び出されるラッパーを記述します( の先頭に配置するPATHか、バイナリの名前を変更しますgit)。その後、ラッパーは--helpと交換され-h、元のバイナリを呼び出します。

「この構成を設定するだけで、自分だけが必要とする特別な方法で実行されます」のような簡単なソリューションを探している場合、おそらく見つからないでしょう。個人的な特定のニーズに合わせてソフトウェアをカスタマイズしたい場合は、そのための努力が必要です。

答え2

直接 man ページに移動します。適切なフォーマットに必要なものは少なくなります。

 $ man git-diff | less | head -n 15

GIT-DIFF(1)                                                     Git Manual                                                     GIT-DIFF(1)

NAME
       git-diff - Show changes between commits, commit and working tree, etc

SYNOPSIS
       git diff [<options>] [<commit>] [--] [<path>...]
       git diff [<options>] --cached [--merge-base] [<commit>] [--] [<path>...]
       git diff [<options>] [--merge-base] <commit> [<commit>...] <commit> [--] [<path>...]
       git diff [<options>] <commit>...<commit> [--] [<path>...]
       git diff [<options>] <blob> <blob>
       git diff [<options>] --no-index [--] <path> <path>

DESCRIPTION
       Show changes between the working tree and the index or a tree, changes between the index and a tree, changes between two trees,

DESCRIPTION代わりに、何らかのフィルターを使用して印刷することもできます。head

関連情報