Git in terminal is dead, Matt!
Is what I said to my colleague and I'm sure he will see this.
But here's the thing. Why would you prefer to use git in terminal? I can't speak for everyone, but there's never been a time where I've had to make changes to a repo and push from a remote server.
I make changes to my local repository and push my changes up from there. If a repo is being pulled down to a server, typically the only thing I need to do is then run it. So why not make your life easier and use tools like GitKraken to make the usual monotonous task of using git commands and have a nice responsive GUI?
The biggest excuse I hear is "But what if you need to use git on a remote server?" and I have to reiterate this because it's important. Other than cloning a repo down to a remote server, what else would I need to do? Whatever I'm trying to run from that repo should just run right? Even then, chances are I'd most likely have the source open in another window ready for editing. All I would need to do is update, commit, push my changes and just do a git pull on the server.
So let's go over some of the features GitKraken can provide.
GitKraken offers a great user experience with it's gui. Instead of typing to find out what branches I've checked out in the past, I can just see them all at the top left hand side of the screen. If I need to checkout any of them, I simply double click. It's that easy.
One of my favourite features is the commit history. While the app is open I can see all commits as they get merged in. It's lead to some funny moments where I can see what colleagues have written in their commit messages and they know I can see them. This features also gives you a good idea of the story going on with the commits and where they were merged.
With GitKraken we can fully integrate with our personal repositories. So for instance I have mine fully integrated with my own personal instance of gitlab I setup on a home server.
Because I've setup a token for GitKraken to access and control, the application is now able to see all projects held in gitlab. So if I'm not sure what the project is called and I want to work on it, instead of me signing into gitlab and looking to find the project then grab the url for cloning, all I have to do is click the folder icon, click clone, self managed gitlab instance and there's a list of my subgroups with all my projects. There's even a search box.Saves me a lot of time signing onto gitlab and routing around the subgroups trying to find the project I need.
Merge Conflicts Editor
A great feature GitKraken offers is if there are merge conflicts. GitKraken will inform you of the conflicts and give you the ability to edit them then and there showing you what the conflicts are and allowing you to choose parts to commit.
One of the features GitKraken offers is Glo Boards. It's a Kanban issue tracker which you can setup for you and your team. I typically use this for my personal projects so I can add a backlog of stuff I want to add to my scripts and make sure I don't lose track.
GitKraken I would highly recommend to everyone using git. The amount of features in this tool helps a lot. There is a free version you can get, but to get extra features you need to pay. The options are $29 a year for individuals which unlocks the ability to work with private repos and use the in app merge conflict feature. Or there's the pro version which is $49 a year and this unlocks all the integration stuff with GitHub, local GitLab instance, etc.
Personally I pay for the pro version because I like the integration features for my own GitLab instance. Some people will most likely think the price for this app is a bit steep, but hey, I use it every day. I like what they're doing and the improvements they bring out on a regular basis.
So if you want to give GitKraken a try, I'd greatly appricate it if you create a free account using this referral link.