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.
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.
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
I use github desktop since I'm not using git a lot, and that gui is very easy to understand
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.
I use git fork on Mac, same reason, I don't remember all the commands. Also want to see the history visualization
I generally don't trust most git GUIs - a number of our developers have used SourceTree on OS X before and it's led to nothing but issues. The only one I trust is the one built into IntelliJ IDEA, otherwise I'll use commandline.
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
I kinda do both? For some reason, I prefer the CLI when I clone a repo, but Sourcetree for committing, pulling, and pushing, and my IDE's built in git tools for merges.
(GitKraken)[https://www.gitkraken.com/] is nice.
It is free "for solo developers working with local/public repos" (and free for all remaining cases, under (GitHub academic benefits)[https://education.github.com/]).
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.
I mostly use CLI but sometimes SourceTree, it's neat
Not really but sometimes if I need a visualization of something complicated that I can't see in my head I'll go to the network tab under insights in github
"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.
~~Atlassian~~ Github Git Cheatsheet: Changed to the Github version as the Atlassian one was an auto-downloading PDF.
Funny that I haven't thought about cheatsheet, even though I use one for vim ^_^'
While I do most actions with the git
command or the git fugitive plugin from tpope, I will sometimes whip out lazygit
for certain things I don’t do that often.
- 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.
JetBrains have some quite extensive VC tooling built into their IDEs which I use almost exclusively. I used to do everything in the terminal, but I find it so much quicker and simpler to do it directly in the IDE.
Sourcetree
I use GitKraken, which is pretty great, but for a lot of day to day stuff I just end up using the CLI
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)
I use Git Tower and I love it. I'm surprised I don't see it mentioned here.
You can set aliases for CLI.
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.
I use GitHub Desktop - offered by GitHub themself. Its a GUI application where you can fetch, push, pull etc. But mostly just basic github "commands".
I am pretty hooked to SmartGit. I absolutely love their branch and commit view and haven't found another tool that visualizes the tree quite as good (for my taste; I assume it has to do with familiarization over time).
I did however buy a lifetime license when they still offered them. Their current pricing model would have probably turned me off before I even got hooked. It is absolutely worth a look though.
If I need a visualisation, then gitk
is there for me.
If you can't remember commands, then get yourself a cheat-sheet.
Would it work for you if you created git aliases for commands you can't remember?