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.
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.
Haven't seen it mentioned here, I've recently been using lazygit from time to time and I quite like it, especially committing only a few changed lines from a file is nice and quickly amending to old commits. I still use cli for more complicated stuff though.
I use Git Tower and I love it. I'm surprised I don't see it mentioned here.
I used to use GitKraken at my old job and loved it most of the time, slick UI and generally did what you wanted to do.
I'm using Atlassian SourceTree at my current place since it's what they give us and it's...fine. Not as nice as GitKraken.
I mainly use them because I originally used TFS's TFVC when I started my career and when we transitioned to Git, I started out using a GUI so never really learned to use the CLI.
I use the default git extension in vscodium. I usually code in vscodium anyway, so I just use it to commit my changes.
I think it is a better experience, you don't forget to add file when commiting changes, it is very easy to just commit couple files (instead of typing their name, just click the plus button), and writing multiline commit message is very easy.
I am one of the few Linux user that prefer not to use commandline when there is a graphical alternative.
SourceTree when I was still a software engineer.
I'm a manager now, and I see people insisting on command line who have no idea what they're doing. Then don't! I think it's an awful attitude that real programmers use git command line, and GUIs are for babies. Please call out this attitude whenever you see it. Use tools that work for you. Git has a terrible user experience, let's face it.
Ungit all the way
I mainly program in Visual Studio so I use it's integration for simple commits, diffs, and checkouts. Anything more complicated than that I head for the command line.
Tig is a pretty nice terminal gui
- 45% SourceTree
- 45% CLI
- 10% TortoiseGit
The repository I work in is huge, old, and the folder structures are wide and deep. It is normal to modify tens of files in almost as many folders for a single feature change.
SourceTree for managing staged files and committing.
CLI for pull, branch switching, and searching.
TortoiseGit for showing the log or blame of individual files and folders.
I own sublime merge because it was cheap when I upgraded to ST4, but never use it. It's not bad or anything, but honestly the CLI is more convenient to use (and all the GUIs I've used have a lot of clicking involved). I don't know that you're going to find something better than the CLI, especially given your requirement ow "comfortable to use with only a keyboard".
I don't have a recommendation, but I understand the desire for excellent keyboard support in a GUI. I switched to Linux after 3 decades on Windows and I really miss doing all the screen navigation from the keyboard. In Windows, the only time I used a mouse was inside things like drawing tools and badly written apps with inadequate or non-standard keyboard support.