Skip to main content

Preface

Git is a weird and complex tool built to be primarily local (as in, used without some server where code is hosted). This may be confusing since sites like GitHub and GitLab appear to treat Git as a cloud service, but these companies were formed around the Git tool as it exists, Git was not built around them. Because of this, I suggest you try and pull GitHub, GitLab, Forgejo, and Codeberg out of your head while learning some of the basics of Git, since they are all relatively interchangeable when it comes to how Git itself functions.

Additionally, while there are many GUIs that try to make Git workable, I personally still find the original Git tool itself to be the most effective. Git is a command line tool, you'll need to be typing commands through your terminal to work with Git. I recommend you take this same approach, it will end up being more versatile and consistent that most GUI based Git tools.

Forges

Git itself is just a versioning system. While critical, it does not do the human organization part well, as that's not the purpose of Git. Instead, the human factor is typically called a Forge, which adds things like Issues, Pull Requests, Project Boards, Maintainer and Permission Roles, etc. Forges add the extra oomph to meet the needs of collectivized digital development work, and so they will have their own chapter near the end for some of their basic concepts.