Comment by emeraldd
7 years ago
What GUI do you recommend? My experience has been that GUIs are the easiest and fastest way to make a mess that can't be corrected without dropping to CLI or re-cloning. (I'm looking at you SourceTree). I've long recommended that everyone who uses git know how to use the CLI even if they don't use it regularly.
I'd like to also point out tig. "Tig is an ncurses-based text-mode interface for git"
It doesn't have all the bells and whistles of a GUI, but if you need to look at all the branches, and commits to a repository. tig is an excellent tool. tig doesn't issue any commands though, its only a browser, you'll still need to know the CLI. (essentially a ncurses version of gitk)
I'm normally in a ssh session on a remote box where my compile & run cycles happen. tig is curses based, so no X11 needed, filled in a really nice itch of mine.
[1] https://github.com/jonas/tig
+1 for tig. I'm also a big fan.
I tested a bunch of Git GUIs. My requisites:
- Open source (and free) - Multiplataform
The one with the best usability was Git Extensions: https://github.com/gitextensions/gitextensions
It is somewhat old ugly, and open a little too much of dialogs, but the workflow really works. It guides you to make the right thing.
A great plus is that it already comes with Kdiff3, a great open source 3 way diff open source program.
Agreed, Git Extensions taught me Git visually rather than through a tutorial.
The Git GUI that ships with git is very good. It also shows how Git thinks (workspace/staging/commit) that most other gui's struggle with (they try to make it look more like a SVN workflow). For diffs and blame I use TortioseGit. I also extensively use the CLI for most branch actions.
If you're on a mac, I can't recommend Tower enough. It's a paid app but well worth the money. Otherwise Git Kraken is a foss offering that is also excellent.
Git Kraken isn't FOSS. The site says "Free for non-commercial use", and AFAIK the source isn't available anywhere.
I think maybe the term you're looking for is "freeware"?
Ah, you're quite right. I was under the impression it was FOSS - I used it a while ago, preferred Tower and so went back to that.
I second your recommendation of Tower. About a year ago, I made a comment right here on HN singing Tower's praise names. [0]
It's impossible to sing those names loudly enough.
Apparently, there is now also a windows version. https://www.git-tower.com/windows
Thanks, I had disregarded Tower until I saw your comment :)
I want to second that. Also the integration with diff tools like Kaleidoscope is a nice touch. (Even though Kaleidoscope feels like abandonware at this point)
Gitup is free and probably better.
Thanks for the tip, I'll have to check it out.
How is atlassian's Sourcetree?
I like it a lot, it make git as simple as mercurial. I don't think it is hiding complexity, but the visual arrangement makes sense. The staging area becomes actually useful, and I love that you can stage (or revert) pieces of a file, which is handy when you forgot to commit one thing before moving on to the next.
I've only had to merge a branch once, and here I was completely confused on what was going end. This may be SourceTree's fault or git's fault. Maybe my lack of understanding.
I hate git, I don't understand git, I don't want to have to understand git, and I think the command line interface makes every UI error in the book. But SourceTree has made me like git.
We have a bunch of projects that are stored in a mercurial repo so I've been using Sourcetree for that as I've found MacHG pretty unusable. I think it's pretty good, not as good in my opinion (the UI, mainly) as Tower for Mac which I use for Git, but makes Mercurial easy to use for this (somewhat) hardened Git user.
Incredibly slow. I was never annoyed so much when using a software...
> What GUI do you recommend?
I really like Magit, which is a git GUI you can use without leaving Emacs. It handles 90% of my git needs and is very tightly integrated into my IDE (Emacs). I still use some shell commands (like git mv) occasionally but those are simply m-! away.
Second that; I'm using Spacemacs just for Magit and nothing else, although it's mainly vim or clion for development. Haven't seen a single git client that would be close to Magit; too sad it needs Emacs, could have potentially been an awesome standalone...
Magit in emacs. Probably one of the killer applications for emacs.
+1, along with Tig (console gui).
Thanks for telling me about tig, now I'm justified for having browsed HN today.
It treats my "assume everything works like vim" habit well
2 replies →
I love tig!
Agreed. Best git interface I have ever used.
I'd hesitate to call Magit a git GUI though.
If we take Ranger for example, who calls itself the "CLI file manager", then Magit is rather a "git CLI".
>I'd hesitate to call Magit a git GUI though.
Why? It is designed for git and graphically displays revisions allowing you to pick and chose chunks of file and to revert individual changes.
I use sourcetree and it's pretty great, especially the aforementioned block-level staging.
Not the OP, but git cola works great for me.
https://git-cola.github.io/
I personally switch between the command line, git gui and gitk. I haven’t yet found a suitable GUI replacement for those two.
I use TortiseGit in my personal and work dev environments. It works works well. That being said, I have had to drop to CLI to fix things that were somewhat more hairy.
Tortoise was great on Subversion, but I don't like it for Git. The UI in thought to work with a centralized version control is isn't well adapted to Git.
My company uses Mercurial still and TortoiseHg is the best thing about it. I can sling big piles of commits around, patch, graft, and search, it's all so easy. I hope it works as well for Git or Git can catch up.
I recommend SmartGit; it's not cheap, but it's really, really nice.
SmartGit is really nice.
It's also free for hobby / open source
but worth buying for commerical work, but it is pricey, and I think getting the lifelong updates is the way to go.
SourceTree by Atlassian ... free.
For any Windows users out there, I use GitExtensions, which has served me very well over the years.
I use SmartGit. Way faster and more stable than SourceTree and GitKraken, in my experience.
+1 for SmartGit, and SmartSVN if you ever use SVN.
VSCode or Github Desktop (even if the project is on Gitlab).
Not the OP, but I had come from SourceTree to GitKraken and it's a joy to use.
Same for me! I used SourceTree in the past but at the moment I am using the free version of GitKraken for private projects and I am very happy.
I like GitKraken