What's your favorite Git tool/GUI or is the command line all you need?
I've had enough of SourceTree crashing on me (Mac 😤) so much that it pushed...
Some comments have been hidden by the post's author - find out more
For further actions, you may consider blocking this person and/or reporting abuse
Exclusively CLI here, with no plugin tools. Git Bash on Windows, naturally.
Since I very often do bisects for tracing, manual repair of branches, and complex rebase/merge operations, I've found GUIs to be subpar.
Same as my experience. Git on the command line is and will be superior for a while to come.
Depends on your needs, really. A regular dev just concerned with merges and pull/merge requests is fine using GUI or web tools. More intuitive for them, or easier to handle (had a coworker use our Gitlab for merges even to the staging and integration branches). But
bisect
andrebase -i
are important tools for power users, especially those with responsibility, and no GUI I've found handles them well.I dislike the common diff/conflict resolve UIs (e.g. Jebtrains IDEs), but mostly because I've grown accustomed to git+nano. I see absolutely where they're useful for someone who prefers to work from the IDE. It just isn't my workflow. I much prefer seeing the diff on the shell, as well as using the less-commonly-implemented-in-GUI features, but I know I'm an outlier there.
Agree.
Thanks for your input
I'll keep git bisect in mind, I haven't heard of it before and it seems useful
What I'll miss the most are probably git graphs to keep track (stalk) what's going on in repos (although I haven't tried to get accustomed to
git log
) Do you think its not useful enough or have you achieved visualizing commit history differently?I just copy/pasted a fancy
git log --graph
, and I'm not sure if my eyes like it lolI rarely use graphs, to be honest. But pure visualisation tools are also aplenty, not really a need to switch to a UI-based workflow.
Maybe it's because I work with relatively large concurrent teams that I don't see much point in graphs, but I've never found them to convey relevant information to me. If I need to know how a commit was merged, I can either use our gitlab for the lookup, or some CLI tool that traces back (written one myself once, in fact). I'm also a huge advocate for rebase-before-merge, so our graphs often don't really tell anything. And they break apart regardless of visualization at a certain amount of concurrent branches anyway (bitbucket still can't handle more than a handful of branches properly...).
Besides, once the merge commit is in, it's not really important to know which path a commit took, at least in my experience.
You may laugh at me, but what I found works best for me at the moment is a mix of Sourcetree, command line and VS Code's Git Lens, depending of what I'm doing
In my daily workflow, I find using a desktop GUI is especially useful to .. well .. visually compare and diff branches. Will switching to command line and getting used to it make me a better developer?
I've also tried Git Kraken and Github Desktop, but found limitations in both of them for my use cases. Looking to try Git Fork which was mentioned around here next.
Yes, it will. I used to use GitHub Desktop but I found that it had less capabilities than what the command line had once I switched to it. Also, being trained in the command line is good and will help you in the developer journey.
Github Desktop is pretty but quite unusable, I'm not sure who the audience for it was. The answers and my experience seem to align with what you recommend though "DROP THE GUI" ✂️
Built in git from VSCode 🙂
My bad, I missed the update in your post 😅 Do you use anything for a git graph/timeline when you have multiple branches?
For a graph view I use this VSCode extension
marketplace.visualstudio.com/items...
I also use this extension a lot (For checking who last modified a file or a line in a file)
marketplace.visualstudio.com/items...
I use the git program from the command line, and sometimes the diffs in vscode.
I’ve been using gitui. It’s fast and easy to use. It’s a terminal base program, but has all the gui features you would need.
Interesting. They seem to emphasize on performance and this also caught my eye on their repo, which I think most would agree with 😂 :
Such a great post. Thank you so much for sharing it. I am application developer and develop many mods of WhatsApp.
When I started coding Git CLI,
then Gitkraken and Github Desktop.
Finally, Git in IntelliJ and sometimes Github desktop ^^
CLI FTW