I ask because I like console, but at the same time have difficulties remembering all the commands. I’d like to try a GUI that is comfortable to use with only a keyboard.
[edit]
My inbox got fediversized, fantastic feeling.
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)
It has a “free evaluation” that I think can be as long as you want it to be / honor system.
Its been worth it to me to pick up a license and support the development though. Its reasonably priced (for a dev tool) / no subscription and definitely beats the free clients I was using before (Sourcetree/GithubDesktop).
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.
Sublime Merge has been wonderful to work with
It is one of the few tools that doesn’t misrepresent the core git paradigm.
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!
TortoiseGIT
It doesn’t get enough love.
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.
Magit with emacs (doom emacs to be fully honest). More a TUI, but definitely fully keyboard driven :)
Yeah this is THE best interface for git. Worth getting into Emacs just to use it id say.
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.
Magit on Spacemacs for me. Absolutely brilliant tool. https://magit.vc/
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.
+1 for Lazygit. It doesn’t cover all of my needs so I have to use the CLI for a few small things, but for 99% of your typical git usage this tool is such a gift.
I’m curious: what’s missing for you?
I needed a few smaller features (like rebasing onto any commit, not just HEAD) and found the code quite easy to adapt to my needs (had to take half a day to learn Go first though).
A proper gerrit integration would be awesome though.
What’s lacking for you and where did you end up tool-wise?
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
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 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.
as an idiot, I tend to click around without thinking. You don’t need to understand what you’re doing as much with a gui. When I started using the command line I started having a lot less problems, lol
The IntelliJ merge UI is the only way I ever want to deal with merge conflicts. So much better than any of the alternatives I’ve tried!
I’m a heavy intellij user, but the git log UI always confuses me. When I open ‘git log’ via the action menu IntelliJ doesn’t focus my current branch. I am not sure if there’s some other menu I’m supposed to use to achieve that.
I do use the commit local changes, pull changes, merge branches functionality a good bit. My only feedback there is that I haven’t found a way to quickly commit changes without running git hooks. Each time it requires me to open up the gear icon and deselect ‘git hooks’. This is slower than using the command line where I can write
git commit --no-verify
and repeat the same command again and again. I know it’s a niche need, but it’s necessary for testing a rather archaic system we maintain.
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.
Gitkraken is the powerhouse, but i only use it for difficult commands
I used to swear by the git CLI. After using GitKraken for a few days, I shelled out the $95 for an annual license. It’s really good.
I use GK for everything and usually only use CLI when there’s something a little exotic. I like seeing it update in real time on another screen and I like the diff engine for quickly assessing changes and making sure everything I expected was altered and nothing I didn’t. I know there are other tools but GitKraken is the fastest for me.
Also have found it a good tool for teaching other engineers (usually older) how Git works. We tried out Sourcetree but it was super clunky at the time.
If I had to find a tool between pure CLI and pure GUI I’d probably recommend Emacs Magit porcelain. Works quite well.
I use Gitkraken too and am very satisfied with it
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.
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 withtldr git branch
which would give you an overview on the most popular use cases.
I use a mix of CLI, the Git UI built into VSCode, and Sublime Merge.
Sublime Merge is great for getting an overview, it’s very snappy (especially when compared to Electron Git UIs), and I love the merge conflict editor. It’s not cheap, but worth every penny.
Isn’t it free if you’re okay with using it in light mode?
That’s what I do. It works out pretty. I’d really like to buy from them at some point.
My thought exactly every time the little nagware window pops up in sublime text (obviously from the same creators as sublime merge).
“Would I like to pay for this awesome piece of software? Yes. Do I have the money for that right now? No.”
Well, you can technically use it for free, but that doesn’t make it licensed properly. It’s like the infinite WinRAR trial kind of.
For daily work, I use the git integration built into my IDE. Occasionally I need the CLI for something complex.