Skip to main content

On Git

Git is a communication mechanism first and a code archive mechanism second.

or something to that effect. Origin unknown

You can argue about it as part of a code sharing (in addition to communicating about the code) mechanism second, a deployment solution third, and so on, but the above is the essence. Git is the content that you communicate over email, SSH/GitHub/GitLab/SourceHut/Bitbucket/whatever, git-svn, whatever, so communicate the right thing and well. Do not treat it as a dumping ground.

You can use Git GUIs and TUIs if you like, but those aren’t excuses for not generating exactly the same quality product. Understand what result you need in Git then figure out how to do it in your UI, not let the UI/UX create some result.

Git is not GitHub and GitHub is not Git

GitHub and GitLab especially encourage some specific bad practices and encourage complacency:

On the other hand, git forges have done some public good, but you must not use them dogmatically their way just because ‘everybody else’ does.

Please see the How the [Linux kernel] development process works and open your mind to the possibilities of Git regardless of the transport. Git is about the content, not where it is hosted.