I used GitHub Desktop at first, tho moved away as I wanted some integrated solution. So I went with VS Code extension GitLens and I find version control much easier now.
I've heard of other solutions like GitKraken, SourceTree and Smart Git.
There are lots of GIT extensions, as well.
What GIT GUI client do you use and why?
Top comments (88)
I don't use a git gui, i'm far faster with command line.
It take a while to know the commands and options, but once you learn them you become much more productive.
It allows you to use git on any computer, help others fix their git mistakes.
Having GUI doesn't disallow you from using CLI commands but does help with rendering the tree. The tree rendered in terminal looks awful and not very helpful.
Also, I find some actions to be faster and easier using GUI - for example reviewing and staging the changes.
So, I personally use both GUI (Fork) and git CLI.
I also use KDiff3 for resolving conflicts. Looks dated but works really well.
Add that cli feedback is a whole lot better than a gui client.
Terminal
onlyDo you use any aliases to be more productive with git? 🤔
Oh yes, I created a few most frequently used Git commands with aliases in my
.bashrc
file. Usually, the shorthand commands not more than 6 letters.Nice list 🔥🔥🔥 Thanks for sharing with us ❤
Hey ! Do you know ZSH has its own aliases for Git in CLI ?
github.com/ohmyzsh/ohmyzsh/wiki/Ch...
Yea, I know. But I am kinda married to
Bash
like forever (16 years). I don't think I would find any other partner.Weddings are increasingly rare so congratulations lol
Everything is weird these days.
These are my abbreviations in fish.
github.com/kodaman2/kubuntu-dotfil...
I use Fork , let's say it's very powerful and easy to use.
I tested gitkraken before, it's slow comparing with fork
I use Gitlens + Git Graph on VS Code.
I've also used SourceTree as a standalone git client in the past but a few months back I've switched to Fork and I'm pretty happy with it.
How Git Graph works?
I use the command line in a terminal and magit in Emacs.
Same here. I've tried to use VS Code a bit, and in VS Code I've tried the edamagit plugin, which aims to be a magit version for VS Code. It seems promising.
If magit is the best Git GUI for many people today, we have to precise it is the best Git GUI for Emacs users only ;p
And, as an Emacs plugin (I should say Emacs package), note it is a Git pseudo-GUI because it is keyboard oriented. From my point of view, it is very nice compromise between power of a CLI and ergonomy of a GUI.
I use git in the terminal but added forgit which has syntax highlighting for diffs and log views
Yea forgit is a blessing. I enjoy using the terminal as-is but forgit's staging view is a huge blessing for me

Damn that's a clean setup!
I never even got around to customizing my tmux tabs or the forgit colors haha
Haha not gonna lie, I just pulled the screenshot off github.com/wfxr/forgit#readme. Probably should've added a "credits to wfxr for image".
I'm actually not a user of tmux. But hey this actually gives me some energy to look into it :)
Ah I see, you should definitely check out tmux or any of its cousins.
I run a tmux session (instance) of it on my workstation and move around the house on my laptop ssh-ed and using the same tmux so I never lose what I was doing in multiple consoles.
Oh boy that sounds like a swell setup, thanks for sharing :)
I use git from terminal if I'm within one or gitlens if I'm on vscode.
But I've unlocked much more power from git through Gitup gitup.co which allow me to entirely rewrite a branch history and split commits in a better way, extracting exactly the lines I want in a given commit, and making my PR much easier to review for my colleagues.
I don't even wanna try to do this from command line. There are use case when a GUI is superior.
I do this in the cli,
However I agree, with large amounts of files I will select vscode which also allows for partial staging of files.
But git add -i is a blessing in my day-to-day operations
I'm using a plugin called vim-fugitive since it allows me to stay in my when writing commits or staging parts of a file.
For other things (e.g., pushing, rebasing, bisecting), I'm using the terminal. It takes some time to learn all the commands, but after that, it's worked out well for me. 😄
Because I use both VS Code and IntelliJ IDEA (and even Eclipse sometimes, and of course Vim for some quick changes), I don't use integrated solutions (years ago, I used both Eclipse for Java projects and Visual Studio for C#, at the time I was on Windows and using Subversion, so TortoiseSVN was my go-to; then switched to Git, then to Linux as I no longer needed to do C#, and then to IntelliJ IDEA, and VS Code as I do more and more JS).
I never had to re-learn how to use Git when changing OS, editor, etc.
I use git-gui (most of the time in its
git citool
form) to stage changes and commit them,gitk
for browsing history, and the command line for everything else (pull, push, rebase, switch branch; and occasionallygit add -p
for its edit mode).git-gui is ugly, and it crashes if you use some emojis (in commit messages or code), but it does the job well and is very lightweight; and "builtin/official".
I prefer the terminal + aliases, but I have GitKraken for when “I don't see it". Why? I find it very intuitive to use and very clear, it can also be linked to various services. GitHub Desktop seems tedious to me. Gitlens is fine too.