This chapter is a collection of resources I built during my experience with Git. I will share some thoughts about GUI tools, web interfaces to Git repositories, and learning resources, hoping they will act as a springboard for a successful Git career.
You're reading from Git Essentials - Second Edition
Git GUI clients
When beginning to learn a new tool, especially such a wide and complex one as Git, it can be useful to take advantage of some GUI tools, to be able to picture commands and patterns in a simpler way to understand.
Git benefits from a wide range of GUI tools, so it's only a matter of choice; I want to tell you right away that there is not one perfect tool, as frequently happens, but there are enough of them to pick the one that best fits your needs.
Windows
As a Microsoft .NET developer, I use Windows 99% of the time; in my spare time, I play a little bit with Linux, but in that case, I prefer to use the command line. In this section, you will find tools I use or have used in the past, while in the other...
Building up a personal Git server with web interface
At a company I worked for, I was the first person to use Git for production code; at some point, after months of little trials in my spare time, I took courage and converted all the Subversion repositories where I usually worked alone into Git ones.
Unfortunately, firm IT policies stopped me from using external source code repositories, so no GitHub or BitBucket; to make things even worse, I also could not obtain a Linux server, and take advantage of great web interfaces like Gitosis, Gitlab, and so on. So, I started Googling for a solution, and I finally found one that can be useful even for people in the same situation.
SCM Manager
SCM Manager (https://www.scm-manager...
Learning Git in a visual manner
The last thing I'd like to share with readers is a web app I found useful at the very beginning for better understanding the way Git works.
Learn Git Branching (https://learngitbranching.js.org/) is a tremendously helpful web app that offers you some exercises to help you grow your Git culture. Starting from a basic commit exercise, you learn how to branch, rebase, and so on, but the really cool thing is that on the right of the page, you will see a funny repository graph evolving in real time, following the commands you type in the emulated shell:
Another good resource of this kind is Visualizing Git Concepts with D3, where you can grasp all the most important commands visually. Find it at https://onlywei.github.io/explain-git-with-d3/:
Git on the internet
Finally, I suggest following some resources I usually follow in order to learn new things and get in touch with other smart and funny Git users over the internet.
Git for human beings Google Group
This group is frequented by Git pro users; if you need some help in getting out of difficult situations, the best place to ask for it is at ;https://groups.google.com/forum/#!forum/git-users.
Git community on Google+
This community is full of people who are happy to share their knowledge with you; most of the coolest things I know about Git have been...
Summary
In this chapter, we looked at some Git GUI clients. Even if I encourage people to understand Git by using shell commands, I have to admit that for most common tasks using a GUI-based tool or the IDE integration facilities makes me feel more comfortable, especially when diffing or reviewing history.
Then we discovered we could obtain a personal Git server with a fancy web interface: the internet has plenty of good pieces of software to achieve this target.
At the end, as my last suggestion, I mentioned some good resources to enhance your Git comprehension; listening to experts and asking them questions is the most effective way to get your work done.