It's a paid app only available for Windows and Mac at the moment, but Fork may be worth a look: https://git-fork.com
I am using it too and I love it. I only know source tree as a competitor and in comparision it sucks....
You dont have to pay for it, even when using it comercially (unpess they changed that)
Came here to recommend it too, really neat and practical tool and I haven't found a better alternative yet. Honestly I don't know why are people so against GUI git tools, it makes visualizing branches and commits so much more easier. I don't think you can use it only with your keyboard as OP asked though, dunno how important that is to them.
Magit with emacs (doom emacs to be fully honest). More a TUI, but definitely fully keyboard driven :)
Same here. I don't even use emacs for development anymore (I use IntelliJ since all my work is on the JVM and Typescript) but I still have an emacs running in the background for magit and org-mode. Magit is insanely effective for performing complex rebasing and cherry-picking tasks.
Yeah this is THE best interface for git. Worth getting into Emacs just to use it id say.
TortoiseGIT
It doesn't get enough love.
Sublime Merge has been wonderful to work with
I also love how fast Sublime Merge is. The built in merge tool is great too. I'm a sucker for apps with a command palette for easy access to every command.
Definitely can recommend Sublime Merge as well!
I use a 50%-50% mix between git
CLI and the built-in git tools in JetBrains IDEs.
To be honest, I could quite easily get by with just the JetBrains GUI - they have a super sophisticated GUI that can easily handle things like interactive rebase, cherry-picking, etc + they have a great conflict resolution tool. I just use the cli every now and then if I want to get something done quickly while I don't have an IDE window open.
The number of Git front ends with proprietary licenses is too damn high.
These days I can run everything I need to with the git cli. I use the JetBrains visual merge tool to resolve conflicts, because doing that by hand is so awfully error prone, it very very intuitively maps to a visual process
I used to use SourceTree but it runs horribly and switched to Fork years ago and never looked back. I use VSCode for merge conflict resolution.
Same here, but I still like the merge conflict interface Fork has.
Lazygit changed how I use git, it is so easy to do all the daily essentials like branching, committing, and merging, but also also does more advanced things like interactive rebasing when needed.
I had searched for a proper git client, that was free and open source plus worked on both Linux and Windows, for a long time and I haven't looked back after finding lazygit.
No, I find typing faster than clicking and I've been using git for so long the commands are second nature to me.
i just use Visual Studio or VS Code
I've tried a lot and settled with vim-fugitive. If you know and like Vim-keybindings it's probably the best choice out there.
Apart from the cli, gitk and git-gui are plenty good in my opinion, they could always be made better. And they are mostly always there with git Only thing I am miasing now is blame.
GittyUp! https://murmele.github.io/Gittyup
I previously used GitKraken but was looking for an open source alternative that works in a similar fashion and has a Flatpak.
I use IntelliJ's built-in git GUI.
I don't understand why people use command line only. Sure, learn the commands so if you need to use them you can, but most GUIs are far more feature rich than command line. With IntelliJ, I can easily view differences before committing, have it do code quality scans, automatically clean up any code it can, more easily choose which files I want to commit vs the typical 'git add .' I see most people do with command line, have separate changelists when pair programming, and much more.
One argument that continually comes up is that command line is faster. I completely disagree. If I want to just commit the code without reviewing it, I can use 2 hot keys and the code is committed and pushed. But as I do a quick readthrough of all the code first and review issues from the code quality analysis it does take more time, but still less than it would to do comparable things with command line.
My inbox got fediversized, fantastic feeling.
Hey hey hey, I want that too!
As for git, I just use the plugin on VS code. Nothing fancy. I didn't even know there's other options like GUI to be honest.
TortoiseGit user here. Love that it integrates with Windows Explorer so I don't have to constantly be opening an app first to fire off some Git commands.
I use the TUI gitui Though I also use the git cli directly too, depends on what I'm doing.
Gitkraken is the powerhouse, but i only use it for difficult commands
Github desktop is very functional, I use it all the time
VS 2022 is finally somewhat usable for Git using the git Changes pane. The whole team uses it this way, and for many of them it's a first for git as well.
For daily work, I use the git integration built into my IDE. Occasionally I need the CLI for something complex.
I use the VS Code built-in git support for making commits, and fall back to the CLI for anything else.
You won't have trouble remembering commands once you use them often enough. And you don't need to know all of them, just the ones your workflow uses. My toolbox is commit, checkout, status, reset, rebase -i, merge, bisect. That's all I need day-to-day.
when I absolutely need to... git-gui.
Live by the console, die by the console.
(I should change things up and try to make my life easier -- vim for life) 🙃
I don't use a GUI, with the exception of Meld as my primary difftool
At work I wish they were using git. But we got SVN. How I long for the ability to use pull requests. But tortoiseSVN has some nice features (I'm stuck with windows over there) even if it's lacking in overall functionality.
I use Lazygit, which is a TUI. It is entirely controlled by keyboard shortcuts and has a lot of quick ways to do tedious things.
I use VSCode for simple commits and merge conflicts. Anything more complicated and I go to CLI since it's usually better documented.
I use github desktop since I'm not using git a lot, and that gui is very easy to understand
Same here. My git needs are basic.
Github desktop is the only way I know how to clone my private repo. I do not understand how to clone my private repos through CLI.
I've been using the git gui extension for a while and resolve conflicts in vs code. I also just use a lot of cli
Sourcetree
Closest I get to a gui is magit in emacs.
I actually like the tooling built into VS Code. Added the GitHub Pull Requests and Issues extension for the PRs, pretty happy with it all at the moment. Before that I like a specific older version of SourceTree that didn't forget your credentials.
Im similar, vs code with git graph. Wish i could use something for PR though.
I use GitHub Desktop for 95% of my git needs, terminal for the other 5%
If you have trouble remembering git commands for CLI have a look at the tool tldr
:
https://man.archlinux.org/man/tldr.1.en
For example if you need to remember how to use the branch
command you could look it up with
tldr git branch
which would give you an overview on the most popular use cases.
And in case you don't already know: You may want to use the history search tool of your shell by hitting CTRL-r and then for example typing branch
. You'd get a list of past commands you have used containing branch
that you can flip through by repeatedly hitting CTRL-r.
If you're already comfortable working in the shell, you should check out tig. It's not as fully featured as the other clients named here, but it's an excellent viewer nevertheless.
tig is rad, though it’s more like git log on steroids than a proper UI for git commands (at least the way I use it)
Programming
All things programming and coding related. Subcommunity of Technology.
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.