回答:
「磁器」は、トイレの通常の材料です(洗面台などの備品も含まれる場合があります)。これは、磁器が配管へのよりユーザーフレンドリーなインターフェースを提供する「配管」(実際のパイプと排水)とは異なります。
Gitはこの用語を類推して使用し、ユーザーが通常直接使用する必要のない低レベルのコマンド(「配管」)を、よりユーザーフレンドリーな高レベルのコマンド(「磁器」)から分離します。
さらに重要なこととして、「磁器」という用語は、出力を伴う高レベルのコマンドに適用されます。
それが重要です。スクリプトを作成する場合は、可能な場合は安定した出力を備えた配管コマンドを使用する必要があります。磁器コマンドではありません。
ただし、次のように、--porcelain
スクリプトにオプションがある磁器コマンドの出力を使用できます(以下を参照)。
git status --porcelain
git push --porcelain
git blame --porcelain
gitには独自の磁器層が含まれていますが、低レベルのコマンドで代替磁器の開発をサポートできます。
これらの低レベルコマンドへのインターフェイス(入力、出力、オプションのセットとセマンティクス)は、これらのコマンドが主にスクリプトで使用されるため、磁器レベルのコマンドよりもはるかに安定していることを意図しています。
一方、Porcelainコマンドへのインターフェースは、エンドユーザーエクスペリエンスを向上させるために変更される可能性があります。
磁器の代わりに配管コマンドを使用する例として、「コミットされていない変更があるかどうかをプログラムで判断するにはどうすればよいですか?」を参照してください。
注:磁器コマンドには--porcelain
オプションがあります。
たとえばgit status --porcelain
、は、解析対象の出力を示します。
--porcelain
スクリプトの解析しやすい形式で出力を提供します。これは短い出力に似ていますが、ユーザー設定に関係なく、gitバージョン全体で安定しています。詳細については、以下を参照してください。
上記のスレッドの詳細:
これは、ある程度、私のせいです。
「ショートステータス」フォームは人間の眼球用であり、Junioによって設計されました。
一部の人々はスクリプト可能なステータス出力も望んでいたので、--porcelain
相対パス名や色付けなどの構成可能な機能をオフにする同じ形式で" " を平手打ちし、さらに形式を変更しないことを暗黙のうちに約束しました。安定性を保つことを意図したものではなかったので、
人々がスクリプトを書くのを防ぐの--short
が目的でした。
ええ、--porcelain
それ自体は安定していてスクリプトも可能ですが、パーサーにとっておそらく最もフレンドリーではありません。「-z --porcelain
」フォーマットの方がはるかに優れているので、「git status」に関するスクリプトを書く人にはお勧めします
これは、gitユーザーにとって、スクリプトで磁器コマンドを使用する必要性を反映しています。
ただし、出力が安定している場合のみ(--porcelain
)
william-bergがコメントしたように、同じことが!git push
--porcelain
機械可読な出力を生成します。
各refの出力ステータス行はタブ区切りで、stdout
ではなくに送信されますstderr
。
refの完全なシンボリック名が与えられます。
ジョンGlassmyerが提案しているコメントで:
おそらく、
--porcelain
ここでの意味は「磁器のスクリプトによる消費に適した出力を生成すること」です。
そして、それは「--porcelain
オプション」導入の最初のケースでサポートされます
(before git status --porcelain
、commit 6f15787、2009年9月、git 1.7.0、
before git push --porcelain
、commit 1965ff7、2009年6月、git 1.6.4):
-p
--porcelain
機械の消費用に設計された形式で表示します。
コミットb5c698d、2006年10月、git 1.4.4
新しいオプションにより、コマンドのネイティブ出力形式は、Porcelainで処理しやすい出力を生成します。
git push
は同様に異常な機械可読を持っていることに気づきました--porcelain
。
--porcelain
ここでの意味は「磁器のスクリプトによる消費に適した出力を生成すること」です。
git diff-tree --word-diff=porcelain
gitの「磁器」という用語の造語と用法は実際にはマイクタートによるものでしたが、それ以外の場合はライナストーバルズとの激しい議論を失っています。
http://www.gelato.unsw.edu.au/archives/git/0504/0881.html
実際、私の希望の1つは、他のSCMがgit plumbを使用できることです。
ただし、実際には、「libgit
」ではなく「git」自体を使用することをお勧めします。つまり、あなたが取るすべての実際のプログラムとして配管をし、代わりに個々のルーチンに対するリンクしようとする、あなたはいただきたいスクリプトを、それを。あなたがそれを望まないなら、私はそれをしません。ただし
、配管を磁器から分離することは理にかなっています。
磁器は、コアgitに依存するプログラムおよびプログラムスイートのかわいい名前であり、コアgitへの高レベルのアクセスを提供します。磁器は、「配管」よりも多くのSCMインターフェースを公開します。
磁器のコマンドは、コンピュータが解析しやすい出力を持つコマンドとは対照的に、人間が使用するように設計されています。git status
一例です。
--porcelain
オプションを使用する場合は機械が使用するためのものです。
git status --porcelain
:スクリプトの解析しやすい形式で出力を提供します。(...)しかし、ユーザー設定に関係なく、Gitバージョン全体で安定したままです。
git status --porcelain
解析可能な安定した形式ですが、status
コマンド自体は(たとえばではなくgit ls-files
)ユーザー向けに設計されています。
--porcelain
オプションはどうですか?--porcelain
オプションをし、その後、スクリプトの出力を使用します。基本的にgitの作者は、すぐそこに何も変更しないことを暗黙のうちに約束しています。例:git status --porcelain
スクリプトの出力を使用して使用してもかまいませんが、それで問題ありません。For more detail, checkout VonC's answer.
--porcelain
「磁器」コマンドで指定されたオプションを使用して「疑似配管」機能を実現すると、Gitの一般的なUI設計とうまく調和します...;)
--plumbing
(今回は配管工なので、通常の「磁器」ユーザーではありません)。
グレッグ・ヒューギルの答えは正確です。Easy Git、yap、pyrite、vngなど、Gitで利用できる代替の磁器があることに注意してください。それぞれは、コミュニティの一部でGitを簡単に学習/使用できるようにすることを目的としています。これらすべてのプロジェクトへのリンクは、Easy Gitページ(http://people.gnome.org/~newren/eg/)にあります。
磁器は、コアgitに依存するプログラムおよびプログラムスイートのかわいい名前であり、コアgitへの高レベルのアクセスを提供します。
gitの磁器には2つの異なる意味があります。
これら2つの意味は、厳密に矛盾しているとは言えないかもしれませんが、矛盾しているように見えます。
公式のプロGitブック:
しかし、Gitは当初、完全なユーザーフレンドリーなVCSではなく、バージョン管理システムのツールキットであったため、低レベルの作業を実行する多数のサブコマンドがあり、UNIXスタイルでチェーンされるか、スクリプトから呼び出されるように設計されました。これらのコマンドは一般にGitの「配管」コマンドと呼ばれ、より使いやすいコマンドは「磁器」コマンドと呼ばれます。
--porcelain
/ =porcelain
オプション多くのgitコマンドが付属して--porcelain
オプションされたスクリプトのためのもの。
git status
' ドキュメント:
--porcelain[=<version>]
スクリプトの解析しやすい形式で出力を提供します。これは短い出力に似ていますが、ユーザー設定に関係なく、Gitバージョン全体で安定しています。詳細については、以下を参照してください。
git diff
のドキュメント:
--word-diff[=<mode>]
磁器
スクリプトの使用を目的とした特別な行ベースの形式を使用します。