screenshot of terminal

GIT is a very popular and very good versioning system. Most Linux users use it from the command line (terminal), which is amazingly more practical, efficient and clear than using GUI applications, I don't know why, maybe because its author made it that way... Unfortunately most Windows users are not used to the terminal, so I thought I'd write this little tutorial to try to show how cool it actually is...

First thing is to download and install GIT for Windows. It is a separate project from GIT itself, but it is also free and open-source, and it is kept pretty up-to-date.

GIT for Windows also installs a terminal application, that they call "GIT Bash" (bash is a well-know Linux terminal application). But nowadays, Windows also provides a pretty good terminal application called "powershell". So you have the choice here, both work pretty much the same.

The easiest way to launch a terminal, being one or the other, is to navigate to

GIT is a versioning system. It saves "snapshots" ("repositories" in git slang) of a directory with files. But it does much more than that and is used for much, much more and better things than backing up your files. You have a clear history of what was changed and when and by who, you can search for changes, you can work on the same repository with hundreds of people without a single file conflict, have these people clone and work on different copiesof a repository and then magically reassemble everything together, you can encrypt things, hook GIT to all kinds of services to trigger actions automatically, the list os very long.

I struggled quite a bit with GIT when I had to learn it, when we decided to switch the FreeCAD code from SVN to GIT. And most people I know struggled too, no matter how skilled developers they were. But after that, nobody wants to go back, ever. Linus Torvalds, its author (the same guy who created Linux) uses to say his masterpiece is GIT, not Linux.

I was (and still am) using Linux when I started using GIT, and there were basically no good graphical application to manage GIT repositories. You had to do it all via the terminal. the few existing apps were (and still are) more complicated than the terminal...

screenshot of gitg

GitHub, a popular GIT hosting platform, made a quite nice application. It was (and still is) not available for Linux unfortunately, and also could only work with GitHub itself, which basically locked the whole GIT to a single platform. Also, it is a very, VERY barebone thing that cannot get you out of the shit when you are in it. And, oh boy, how often you are in the shit with GIT...

screenshot of github application

After a while, it grew more and more clear to me that the terminal was actually by far the best way to use GIT. It is the way it was designed from the beginning, so the concepts are very clear