Git is a version control system. I use Git through [[Emacs]] with [[Magit]]. In practice this means that I press about 5 buttons on my keyboard to publish something to [[GitHub]]. Tools like [[Magit]] let's you encode advanced Git processes into muscle memory. It makes perfect sense to integrate Git into the editor so you can avoid context switching.
Everyone knows Git's user interface is bad. Something that needs to be done 100 times a day should not require a context switch to the terminal. It's clearly better to take advantage of muscle memory. Every simple interaction should not require 15 key presses. Why not improve the situation?
> Knowledge workers seem surprisingly unserious about honing fundamental skills
\- [Andy Matuschak](https://notes.andymatuschak.org/Athletes_and_musicians_pursue_virtuosity_in_fundamental_skills_much_more_rigorously_than_knowledge_workers_do)
The same goes for equipment we use, such as keyboards. The [[Keyboardio Model 01]] is objectively a better writing instrument, but no one wants to learn how to use a split keyboard. It will even be mocked as weird and unnecessary. Where does this impulsive defensiveness come from and why is it the default state of mind?
Consider other professions such as carpenting. At some point someone thought it was a good idea to make special jeans in order to work more efficiently: [Carpenter jeans](https://en.wikipedia.org/wiki/Carpenter_jeans). Strange jeans must have seemed weird at first, but today they are considered normal. Have you ever thought about why police officers walk around with walkie talkies on their chest? They have sacrificed normality for efficiency. Believe it or not, this might be possible for software developers too. Maybe there is a [[Scale of acceptable eclecticism]] which also applies to [[Music]].
Over a lifetime, small things like this could be what tips the scale of the health of your hands. It's like walking around with stiff shoes. You can walk around for a while, but at some point you will get a shoe bite (as I did with my [[Red Wing 3344 Blacksmith Hawthorne Muleskinner]]).
I like [[Thinking in the scale of a lifetime]]. If you improve this, you will save your fingers 100 000 key presses in the course of your life. Sounds good?
> In many circumstances, we do not deal with our affairs in accordance with correct assumptions, but rather we follow thoughtless habit
## Commit guidelines
From [[Living Documentation]]:
> A good example of commit guidelines is the Angular commit guidelines, which specify strict rules for how the commit messages must be formatted. These rules, says the Angular website, lead “to more readable messages that are easy to follow when looking through the project history. But also, we use the git commit messages to generate the AngularJS change log.” According to this particular set of guidelines, the commit message must be structured as a header section, an optional body section, and an optional footer section, each separated by a blank line, as shown here:
## Branches
You can have multiple remotes. If someone creates a fork of a repo on [[GitHub]] you could add it as a remote to make it easy to work with.