8

コマンドに関するGitドキュメントから:git status

--column[=< オプション>]
--no-column
追跡されていないファイルを列に表示します。column.statusオプションの構文については、構成変数を参照してください。--columnおよびオプションなしは、それぞれalwaysおよびnever--no-columnと 同等です。

git config column.statusは何も返さないため、オプションの構文がわかりません。この構文に関する情報はどこにありますか? git help statusコマンドは同じ情報を表示します。

4

2 に答える 2

5

のマニュアル ページを参照してください。またはgit-config、マニュアル ページが表示されます。このオプションは、説明を調べるように指示します。これをここに示します。git config --helpman git-configcolumn.ui

column.ui
   Specify whether supported commands should output in columns. 
   This variable consists of a list of tokens separated by spaces or commas:

   These options control when the feature should be enabled (defaults to never):

   always
       always show in columns

   never
       never show in columns

   auto
       show in columns if the output is to the terminal

   These options control layout (defaults to column). Setting any of these implies always if none of always, never, or auto are specified.

   column
       fill columns before rows

   row
       fill rows before columns

   plain
       show in one column

   Finally, these options can be combined with a layout option (defaults to nodense):

   dense
       make unequal size columns to utilize more space

   nodense
       make equal size columns
于 2015-09-14T12:30:30.533 に答える
0

の構文に加えて--column、Git 2.18 (Q2 2018) で修正されたバグがあり、その構文を再度示します。

このコードは、 COLUMNS環境変数を介してターミナル幅をサブプロセスに伝達しませんでしたが、現在はこれを行っています。
これにより、" git column" ヘルパー サブプロセスで、" git tag --column=row" がデフォルト以外の幅で既存のタグを一覧表示しようとしたときに問題が発生しました。

Nguyễn Thái Ngọc Duy ( )によるコミット b5d5a56 (2018 年 5 月 11 日)を参照してください。Jeff King ( )によるcommit be11f7a (2018 年 5 月 11 日) を参照してください。( 2018 年 5 月 23 日コミット 05682eeJunio C Hamanoによってマージされました)pclouds
peff
gitster

列: 1 つずれたデフォルトの幅を修正

デフォルトでは、可能であれば画面全体を埋める必要がありますが、最後の文字が境界線にぶつかり、カーソルを押して折り返すため、すべての端末列を使い果たしたくありません。
print_columns() が幅を term_columns() - 1 に設定するように、デフォルト値 0 のままにしておきます。

pager: COLUMNS を term_columns() に設定します

ページャーを呼び出した後、端末ではなくパイプに移動します。つまり、を使用して端末の幅を取得するstdoutことはできなくなります。 そのため、ad6c373 (pager: ページャーを生成する前に端末の幅を調べる、2012-02-12、Git 1.7.9.2) が端末の幅をキャッシュするようになりました。ioctl

しかし、そのキャッシュはインプロセス変数にすぎません。
私たちがスポーンするプログラムも、その ioctl を実行することはできませんが、キャッシュにアクセスすることはできません。それらは最終的に 80 列のデフォルトにフォールバックします。

次の問題を確認できます。

git tag --column=row

git-tag最近ではページャーが生成されるため、生成 されたgit-columnヘルパーは stdout のターミナルも有用なCOLUMNS値も認識しません (まだシェルからエクスポートしていないと仮定します)。
また、端末のサイズに関係なく、ページャーに 80 列の出力が表示されます。

COLUMNSこれは、ページャーを生成する直前に設定することで修正できます。これにより、このケースだけでなく、より複雑なケース (たとえば、ページ化されたプログラムが別のスクリプトを生成し、列化された出力を生成する) も修正されます。


" " ( man )--nlの " " オプションのパーサーは、Git 2.34 (Q4 2021) で修正されました。git column

SZEDER Gábor ( )によるコミット c93ca46 (2021 年 8 月 18 日)を参照してください。( 2021 年 9 月 8 日コミット cfba196Junio C Hamanoによってマージされました)szeder
gitster

column--nl: ' ' オプションの解析を修正してください

署名者: SZEDER Gábor

' git column' ( man ) s ' --nl' オプションを使用して、「各行の最後に出力する文字列」を指定できます (man ページを引用) が、このオプションとその必須の引数はOPT_INTEGER7e29b82のコマンド(「列レイアウトのスケルトンを追加し、git-column」、2012-04-21、Git v1.7.11-rc0 --バッチ #9に記載されているマージ)。 その結果、数値以外の引数は parse-options によって拒否され、0 以外の数値は segfault につながります。

$ printf "%s\n" one two |git column --mode=plain --nl=foo
error: option `nl' expects a numerical value
$ printf "%s\n" one two |git column --mode=plain --nl=42
Segmentation fault (core dumped)
$ printf "%s\n" one two |git column --mode=plain --nl=0
one
two

このオプションを として解析しますOPT_STRING

git columnmanページに含まれるようになりました:

--nl=<string>

于 2018-05-23T20:13:38.037 に答える