Skip to main content


Distributed version control system used for building software.

Personal notesโ€‹

  • If I'm 100% sure my feature branch will get squashed, I'll use merge commits by default and squash commits when merging with development or main branch - but I'm not opinionated on this
    • in my open source projects contributors are allowed to use either merging or rebasing, depending on their preference
    • If a team I work with wants feature branches to be rebased and force pushed rather than merged, I can do that too
  • I do a lot of Git operations from Git web interface if there's one available
  • I keep forgetting to delete branches
    • On my local machine I periodically clean branches by hand with git branch -d
    • On remote I'm a fan of automatic branch deletion after closing the PR
      • On GitHub the process is nice, reversible and I see no downsides to turning it on
      • For reasons I don't understand teams I work with are reluctant to have it on
        • yet once in a while someone has to call out everyone to delete their merged branches
        • what a waste of time and energy

Git hosting servicesโ€‹

Self-hosted Git hosting solutionsโ€‹

Graphical clients (GUI)โ€‹

While 90% of Git operations I peform from a command line, there's a small portion of activities that I do once in a while, there's a small portion that I do very infrequently, I can't repeat from muscle memory and requires particular attention to get it right, especially under tight deadlines.

That's where graphical interfaces to GIT come handy.