Der Begriff "Porzellan" erscheint gelegentlich in der Git-Dokumentation. Was bedeutet das?
git
terminology
Jan Hettich
quelle
quelle
Noch wichtiger ist, dass der Begriff "Porzellan" für Befehle auf hoher Ebene mit folgenden Ausgaben gilt:
Das ist der Schlüssel: Wenn Sie Skript, Sie , wenn möglich , verwenden sollten , Sanitär - Befehle , mit stabilen Ausgängen. Keine Porzellankommandos.
Allerdings können Sie die Ausgabe eines Porzellan Befehl verwenden , die eine hat
--porcelain
Option Skript (siehe unten), wie:Siehe " Wie kann ich programmgesteuert feststellen, ob nicht festgeschriebene Änderungen vorliegen? " Als Beispiel für die Verwendung von Installationsbefehlen anstelle von Porzellanbefehlen.
Hinweis: Ein Porzellanbefehl kann eine
--porcelain
Option haben.Zum Beispiel :
git status --porcelain
, was eine Ausgabe bezeichnet, die analysiert werden soll .Der oben erwähnte Thread Details:
Dies spiegelt die Notwendigkeit für Git-Benutzer wider, Porzellanbefehle in ihren Skripten zu verwenden!
Aber nur mit stabiler Leistung (mit
--porcelain
)Wie von William-Berg kommentiert , gilt das Gleiche !
git push
Wie John Glassmyer in den Kommentaren vorschlägt :
Und dies könnte durch den allerersten Fall der
--porcelain
Einführung von " Optionen" unterstützt werden(vorher
git status --porcelain
Commit 6f15787, September 2009, Git 1.7.0 ,vorher
git push --porcelain
Commit 1965ff7, Juni 2009, Git 1.6.4 ):git blame --porcelain
::Commit b5c698d, Oktober 2006, git 1.4.4
quelle
git push
eine ähnlich anomale maschinenlesbare--porcelain
.--porcelain
hier "Produktion produzieren, die für den Verbrauch durch Porzellanskripte geeignet ist".git diff-tree --word-diff=porcelain
Die Münzprägung und Verwendung des Begriffs "Porzellan" in Git stammte eigentlich von Mike Taht, während er ansonsten einen heftigen Streit mit Linus Torvalds verlor.
http://www.gelato.unsw.edu.au/archives/git/0504/0881.html
quelle
- Porzellan , Git Wiki
quelle
Porzellanbefehle sind für den menschlichen Verzehr konzipiert, im Gegensatz zu Befehlen, deren Ausgabe für Computer leicht zu analysieren ist.
git status
wäre ein Beispiel.quelle
--porcelain
Option verwenden, ist sie für den maschinellen Verbrauch bestimmt.git status --porcelain
: Geben Sie die Ausgabe in einem einfach zu analysierenden Format für Skripte an. (...) bleibt jedoch in allen Git-Versionen und unabhängig von der Benutzerkonfiguration stabil.git status --porcelain
hat ein stabiles Format, das analysiert werden kann, aber derstatus
Befehl selbst ist so konzipiert, dass er dem Benutzer zugewandt ist (im Gegensatz zu beispielsweisegit ls-files
).Die kurze und einfache Erklärung
Aber was ist mit der verwirrenden
--porcelain
Option?--porcelain
Option hinzufügen und dann Verwenden Sie die Ausgabe für die Skripterstellung. Grundsätzlich versprechen die Autoren von git implizit, in naher Zukunft nichts daran zu ändern. Beispiel: Ich kanngit status --porcelain
die Ausgabe für Skripte verwenden, und das wäre vollkommen in Ordnung.Woher kommt die Terminologie für Porzellan / Sanitär?
quelle
For more detail, checkout VonC's answer.
--porcelain
in bereits "Porzellan" -Befehlen genannt wird, um die "Pseudo-Sanitär" -Funktionalität zu erreichen, passt sehr gut zum allgemeinen UI-Design von Git ...;)--plumbing
(da Sie diesmal ein Klempner sind und kein normaler "Porzellan" -Benutzer).Greg Hewgills Antwort ist genau richtig. Beachten Sie, dass für Git alternative Porzellane verfügbar sind, darunter Easy Git, Yap, Pyrit und Vng. Jedes soll Git das Erlernen / Verwenden für einen Teil der Community erleichtern. Links zu all diesen Projekten finden Sie auf der Easy Git-Seite: http://people.gnome.org/~newren/eg/ .
quelle
https://git.wiki.kernel.org/index.php/Porcelain
quelle
Es gibt zwei verschiedene Bedeutungen von Porzellan in Git.
Diese beiden Bedeutungen sind zwar nicht streng widersprüchlich, können aber widersprüchlich erscheinen.
A. Konzeptionell (Sanitär gegen Porzellan)
Das offizielle Pro Git Buch :
B.
--porcelain
/=porcelain
OptionenViele git Befehle werden mit einer
--porcelain
Option , die ist für Scripting gemeint.git status
' Dokumentation :git diff
‚s - Dokumentation :quelle