porcelain vs plumbing

Git provides two types of commands. The porcelain commands are human friendly, with output that is decorated with dividing characters, color-coding, and helpful, if not ancillary, information. The plumbing commands are more machine friendly, and are intended to be used to chain together the git commands in a stream of actions. The plumbing commands output plain, uncluttered, easily-parsed data.


Plumbing commands are designed to be stable from one release to the next, so that git may be updated without breaking previously written scripts. Porcelain commands are more lenient to updates. Though users will lament excessive changes, the human mind is more lenient when it comes to minor updates. Adding comma's to digits, so that 10,000 is more easily identified as ten thousand, will not phase a human, but would likely crash a program expecting to parse the purely numerical digits of an integer.


#software #version-control #ux