“포세린”이라는 용어는 Git 문서에 가끔 나타납니다. 무슨 뜻이에요?
답변
“도자기”는 일반적으로 화장실이 만들어지는 재료입니다 (세면기와 같은 다른 비품). 이것은 “배관”(실제 파이프 및 배수구)과는 다릅니다. 여기서 도자기는 배관에보다 사용자 친화적 인 인터페이스를 제공합니다.
Git은이 용어를 유추하여 유사하게 사용하므로 사용자가 일반적으로 직접 사용할 필요가없는 하위 수준 명령 ( “배관”)을보다 사용자 친화적 인 고급 명령 ( “도자기”)과 분리합니다.
답변
더 중요한 것은 “자기”라는 용어는 다음 과 같은 고급 명령에 적용됩니다 .
- 인간이 읽을 수 있어야 함
- 파싱하지 않아야 함
- 변화 / 진화에 취약
이것이 핵심입니다. 스크립트를 작성하는 경우 안정적인 출력과 함께 가능한 배관 명령을 사용해야합니다 . 도자기 명령이 아닙니다.
그러나 다음과 같이 스크립트에 옵션 이있는 도자기 명령의 출력을 사용할 수 있습니다--porcelain
(아래 참조).
git status --porcelain
git push --porcelain
git blame --porcelain
자식에는 자체 도자기 레이어가 포함되어 있지만 , 저수준 명령은 대체 도자기 개발을 지원하기에 충분합니다.
이러한 저수준 명령에 대한 인터페이스 (입력, 출력, 옵션 집합 및 의미론) 는 주로 스크립트 용도로 사용 되기 때문에 Porcelain 수준 명령보다 훨씬 안정적 입니다.
반면에 Porcelain 명령에 대한 인터페이스는 최종 사용자 경험을 향상시키기 위해 변경 될 수 있습니다.
도자기 명령 대신 배관 명령을 사용하는 예는 ” 커밋되지 않은 변경 사항이 있는지 프로그래밍 방식으로 결정하려면 어떻게합니까? “를 참조하십시오 .
참고 : 도자기 명령에는 --porcelain
옵션 이있을 수 있습니다 .
예를 들어 : 구문 분석 될 출력git status --porcelain
을 지정합니다 .
--porcelain
스크립트를 위해 구문 분석하기 쉬운 형식으로 출력하십시오. 이것은 짧은 출력과 비슷하지만 사용자 구성에 관계없이 git 버전에서 안정적으로 유지됩니다. 자세한 내용은 아래를 참조하십시오.
위에서 언급 한 스레드는 다음과 같습니다.
이것은 어느 정도 내 잘못이다.
“짧은 상태”형식 은 사람의 안구를위한 것이며 Junio가 디자인했습니다.
일부 사람들은 스크립트 가능한 상태 출력도 원했기 때문에--porcelain
상대 경로 이름 및 색상 지정과 같은 구성 가능한 기능을 끄는 동일한 형식으로 ” “를 두드려서 형식을 더 이상 변경하지 않을 것이라는 암묵적인 약속을했습니다.
아이디어는 사람들이 스크립트를 작성하지 못하도록하는 것이 었습니다--short
.
그렇습니다.--porcelain
그 자체로 는 안정적이며 스크립팅이 가능하지만 파서에게 가장 친숙하지는 않습니다. ”-z --porcelain
“형식은 훨씬 더 그렇기 때문에 “git status”를 스크립팅하는 모든 사람에게 권장합니다.
이것은 git 사용자가 스크립트에서 도자기 명령을 사용해야 할 필요성을 반영합니다!
하지만 안정적인 출력과 (와 --porcelain
)
william-berg에 의해 언급 된 바와 같이 , 동일합니다 !git push
--porcelain
기계가 읽을 수있는 출력을 생성합니다.
각 심판의 출력 상태 줄이 탭으로 구분되어stdout
대신에 전송됩니다stderr
.
심판의 전체 상징 이름이 제공됩니다.
John Glassmyer 가 의견에서 제안한 것처럼 :
아마도 여기 의 의미
--porcelain
는 “도자기 스크립트에 의한 소비에 적합한 출력물 생성” 입니다.
그리고 그 “의 첫 번째 경우에 의해 지원 될 수있는 --porcelain
옵션”도입
(이전 git status --porcelain
, 6f15787는, 2009 년 9 월, 1.7.0을 이눔 커밋 ,
전에 git push --porcelain
1965ff7, 2009 년 6 월이, 1.6.4을 이눔 커밋 ) :
-p
--porcelain
기계 소 비용으로 설계된 형식으로 표시하십시오.
커밋 b5c698d, 2006 년 10 월, 자식 1.4.4
새로운 옵션은 명령의 기본 출력 형식으로 Porcelain에서 처리하기 쉬운 출력을 생성합니다 .
답변
git에서 “porcelain”이라는 용어의 주화와 사용은 실제로 Mike Taht에 의한 것이지만, 그렇지 않으면 Linus Torvalds와의 격렬한 논쟁을 잃었습니다.
http://www.gelato.unsw.edu.au/archives/git/0504/0881.html
사실, 내 희망 중 하나는 다른 SCM이 git 배관을 사용할 수 있다는 것입니다.
그러나 ”libgit
“가 아닌 “git”자체를 사용하는 것이 좋습니다 . 즉, 모든 배관을 실제 프로그램으로 사용하고 개별 루틴과 연결하려고하는 대신 스크립트를 작성 합니다.당신이 그것을 원하지 않는다면, 나는 그것을하지 않을 것입니다.
그래도 배관과 도자기를 분리하는 것이 합리적 입니다.
답변
Porcelain은 코어 git에 따라 프로그램 및 프로그램 스위트의 귀여운 이름으로 코어 git에 대한 높은 수준의 액세스를 제공합니다. 도자기는 “배관”보다 SCM 인터페이스를 더 많이 노출합니다.
답변
컴퓨터 명령은 컴퓨터에서 쉽게 구문 분석 할 수있는 명령과 달리 사람이 사용할 수 있도록 도자기 명령을 설계했습니다. git status
하나의 예가 될 것입니다.
답변
짧고 간단한 설명
- “poreclain”및 “plumbing”명령에는 두 가지 유형이 있습니다.
- 프로그래밍 / 스크립팅시 ” Porcelain “명령에 의존 해서는 안됩니다. 명령 이 변경 될 가능성이 높으며 기계가 아닌 사람을위한 것입니다.
- ” Plumbing “명령은보다 안정적이며 변경 가능성이 낮으므로 스크립팅에 사용해야합니다.
그러나 혼란스러운 --porcelain
옵션 은 어떻 습니까!?
- 당신이 원하는 경우 : (i)는 도자기 명령 및 (ii) 귀하가 출력이 안정적으로 (도자기 명령 만이 아니라 구문 분석 인간에 대한 의미, 기억) 구문 분석 할 수 있도록하려면, 다음 사용할 수있는 추가
--porcelain
옵션 및 다음을 스크립팅에 출력을 사용하십시오. 기본적으로 git의 저자는 암시 적으로 언제든지 아무것도 변경하지 않을 것을 약속합니다. 예 :git status --porcelain
스크립팅에 출력을 사용 하고 사용할 수 있으며 완벽하게 작동합니다.
도자기 / 배관 용어는 어디에서 왔습니까?
- 영어가 모국어가 아닌 경우 Greg Hewgill 이 완벽하게 설명합니다.
- 자세한 내용은 VonC의 답변을 확인하십시오.
답변
그렉 휴길의 대답은 정확히 맞습니다. Easy Git, yap, pyrite 및 vng를 포함하여 Git에 사용할 수있는 대체 도자기가 있습니다. 각각은 커뮤니티의 일부를 위해 Git을 더 쉽게 배우고 사용하도록하기위한 것입니다. 이 모든 프로젝트에 대한 링크는 Easy Git 페이지 ( http://people.gnome.org/~newren/eg/)에 있습니다.