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.
Me too, love Fork!
TortoiseGIT
It doesn’t get enough love.
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.
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 it as well! Not sure if it’s a flatpak thing, but for some reason I need to re-enter credentials for my git remotes for each push. What’s your experience?
No problems here but I only use SSH keys which are configured on my ~/.ssh directory.
I assume you can use ssh-agent somehow to save your credentials.
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
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.
The number of Git front ends with proprietary licenses is too damn high.
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.
This one. It’s sophisticated and easy to navigate.
I generally do conflict resolution in Jetbrains IDEs and everything else in CLI. Occasionally, I might commit from the IDE if I only want a single file.
I mostly use the CLI but when I used to use PyCharm the JetBrain git GUI was the shit. The closest to it in a standalone program I’ve seen is maybe sublime merge, which is also great.
Sublime Merge has been wonderful to work with
Definitely can recommend Sublime Merge as well!
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.
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?
“No. No, man. Shit, no, man. I believe you’d get your ass kicked, sayin’ somethin’ like that, man.” - Office Space
That said and jokes aside, occasionally I’ll use the integrated git in vscode but mostly use the terminal. I do recommend a Git cheat sheet to help become more proficient with the CLI interface.
AtlassianGithub Git Cheatsheet: Changed to the Github version as the Atlassian one was an auto-downloading PDF.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.
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.
I’m still using SourceTree, I’ve tried a few others but have always gone back. Never heard of Fork tough, guess I’ll try that out.
Same here, but I still like the merge conflict interface Fork has.
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.
Sad that I had to scroll so far to see Fugitive mentioned. It is so good it should be illegal. But seriously, if you’re a vim user you really should give it a shot. It’s a perfect blend of vim and shell. Also it’s developed by the legendary tpope, that oughta be enough of an argument to try it out.
You made me curious, I’ll have to try it
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.