O termo "porcelana" aparece ocasionalmente na documentação do Git. O que isso significa?
git
terminology
Jan Hettich
fonte
fonte
Mais importante, o termo "porcelana" se aplica a comandos de alto nível , com saída:
Essa é a chave: se você script, deve usar, se possível , comandos de encanamento , com saídas estáveis. Não comandos de porcelana.
No entanto, você pode usar a saída de um comando porcelain que possui uma
--porcelain
opção no script (veja abaixo), como:Consulte " Como determino programaticamente se há alterações não confirmadas? " Como um exemplo para usar comandos de encanamento em vez de de porcelana.
Nota: Um comando de porcelana pode ter uma
--porcelain
opção.Por exemplo
git status --porcelain
:, que designa uma saída que deve ser analisada .O tópico mencionado acima detalha:
Isso reflete a necessidade, para usuários do git, de usar comandos de porcelana em seus scripts!
Mas apenas com saída estável (com
--porcelain
)Como comentado por william-berg , o mesmo vale para
git push
!Como John Glassmyer propõe nos comentários :
E isso poderia ser suportado pelo primeiro caso de
--porcelain
introdução da " opção"(antes
git status --porcelain
, commit 6f15787, setembro de 2009, git 1.7.0 ,antes
git push --porcelain
, commit 1965ff7, junho de 2009, git 1.6.4 ):git blame --porcelain
:Confirmar b5c698d, outubro de 2006, git 1.4.4
fonte
git push
tem uma leitura anômala da mesma forma--porcelain
.--porcelain
aqui seja "produzir saída adequada para consumo por scripts de porcelana".git diff-tree --word-diff=porcelain
A cunhagem e o uso do termo "porcelana" no git foram na verdade por Mike Taht, enquanto perdiam uma discussão acalorada com Linus Torvalds.
http://www.gelato.unsw.edu.au/archives/git/0504/0881.html
fonte
- Porcelana , Git Wiki
fonte
Os comandos de porcelana são projetados para consumo humano, em oposição aos comandos cuja saída é fácil para os computadores analisarem.
git status
seria um exemplo.fonte
--porcelain
opção, é para consumo da máquina.git status --porcelain
: Forneça a saída em um formato fácil de analisar para scripts. (...) mas permanecerá estável nas versões do Git e independentemente da configuração do usuário.git status --porcelain
possui um formato estável que pode ser analisado, mas ostatus
próprio comando foi projetado para ser voltado para o usuário (em oposição a, por exemplogit ls-files
).A explicação curta e simples
Mas e a
--porcelain
opção confusa !?--porcelain
opção e, em seguida, use a saída para scripts. Basicamente, os autores do git prometem implicitamente não mudar nada lá, tão cedo. exemplo: posso usargit status --porcelain
e usar a saída para scripts e isso seria perfeitamente aceitável.De onde vem a terminologia de porcelana / encanamento?
fonte
For more detail, checkout VonC's answer.
--porcelain
em comandos "porcelain" para obter a funcionalidade "pseudo-encanamento" combina muito bem com o design geral da interface do usuário do Git ...;)--plumbing
(já que você é um encanador dessa vez, não um usuário comum de "porcelana").A resposta de Greg Hewgill está exatamente correta. Observe que existem porcelanas alternativas disponíveis para o Git, incluindo Easy Git, yap, pyrite e vng. Cada um deles visa tornar o Git mais fácil de aprender / usar para alguma parte da comunidade. Os links para todos esses projetos estão na página Easy Git: http://people.gnome.org/~newren/eg/ .
fonte
https://git.wiki.kernel.org/index.php/Porcelain
fonte
Existem dois significados distintos de porcelana no git.
Esses dois significados, embora possam ser argumentados não são estritamente contraditórios, podem parecer contraditórios.
A. Conceitual (encanamento x porcelana)
O livro oficial do Pro Git :
B.
--porcelain
/=porcelain
opçõesMuitos comandos do git vêm com uma
--porcelain
opção que é significou para scripting.git status
' documentação :git diff
's documentação :fonte