|
Depending on how flexible your definition of "GUI client" is, you should give Magit on Emacs a shot. The interface is primarily keyboard driven, rather than mouse driven (some basic mouse interactivity can be enabled). The learning curve is steeper, especially if you also need to learn the basics of Emacs (shouldn't take that long, really), but in the end I think it was totally worth it. I have used Jetbrains' IDEs, the CLI with fish+abbreviations+fzf, Git kraken, tig, and SourceTree. I was not an Emacs user and Magit became the gateway drug that led me down that rabbit hole (I now have a 1000+ line literate config). I actually tried to stop using Emacs in order to unify my tooling but I couldn't wean myself off, just makes working with git way too easy for me. Why is Magit good? - First, it will appease those who suggest "just do it the CLI way" because Magit's "Transient" interface mostly just maps mnemonic keys to git commands and their respective flags. It does this while providing real-time hints/cheatsheet style documentation so it makes discovering some of git's functionality easier. As an example, if you want to fetch and prune from the command line, you would call `git fetch -p` or `git fetch --prune`. In Magit, just tap `f - p u` and you'll get the same thing. Interactive rebasing is also mostly done the same as doing it the CLI way. - It has a lot of convenience functions for a lot of the standard git commands. While they might only represent a small percentage of your day-to-day workflow, it's nice when you can use it. For instance, sometimes I do all my "merging back into master" work so I can start a new branch, start working on a new feature, commit, but forgot that I was still on master. Rather than going through the usual hoops of starting a new branch with that commit and resetting master, Magit provides a "spin-off" and with just a few key strokes, your commit is in its own branch and master is back to normal. Commit extend/reword is another example of some of the small niceties that add up. - It's all text. Some GUIs might have things you want to copy/paste but it's a button or graphical element, making you have to click on something else to make that text interactable. This also makes it pretty fast to work with. I'm not saying Magit is the best git client, since that will largely depend on what you're looking for in a client, but at least for me it was. Give it a shot, see if you like it. |