I’ve been thinking a lot lately about how I use Git in my day-to-day work, and I’ve realized I still default to the terminal for just about everything Git-related. For me, there’s something satisfying about typing out commands and getting immediate feedback, especially when I’m doing things like rebasing, cherry-picking, or fixing up commits.
But then I started wondering… am I just stuck in my ways? There are so many GUIs and tools out there that streamline Git workflows—tools like GitKraken, SourceTree, and even VS Code’s built-in Git integration. Some of them look slick, and I know they make things easier for a lot of people, but I can’t seem to break away from the terminal. Maybe it’s the control freak in me!
So here’s my question: Do you still use Git in the terminal, or have you switched to using a tool? If you’ve made the switch, what’s your favorite Git tool? I’d love to know what everyone’s using these days. Maybe I’ll find something new to try out!
Drop your thoughts below—I’m genuinely curious to hear what’s working for you.
I’ve been telling all the juniors we have, that they’re free to use a GUI tool, but they do not get around learning the CLI. If you fuck up or Git breaks, you’ll need to look up how to unfuck it and that’s where the only help you find is for the CLI.
In particular, it’s also been my experience that you rapidly come into a situation where suddenly you’re the Git expert and need to help others. If you only know one specific GUI, you can only help others who use that GUI. If you know the CLI, you can help anyone.
It also happens that you need to interact with Git repos on a server where you simply won’t have a GUI.
And yeah, given that whole opinion, personally I seriously do not care to learn a GUI in addition to the CLI.
It’s a mix for me. I’ll definitely use the CLI for most things, but I find some things easier with a GUI:
- Viewing history / branches
- cherry picking
- unstaging files
I dunno, terminal just seems simpler. Why have another thing open when it’s simple from terminal?
I use vim-fugitive now for most basic operations, and fall back to CLI.
VSCode for partial commits and branch publish. Terminal for everything else.
While I don’t like being forced to time-travel back to the 1970s, there’s always a situation that the GUIs can’t handle and I’m forced to use the terminal.
I’ve been doing software development for 20 years and use a GUI (GitKraken) almost exclusively. I know all the commands, but using a GUI makes self-reviewing my code as I commit it a LOT easier. It’s also way less error prone and makes visualizing complex branching/merging operations easier to understand. It’s overkill if you’re working solo or with a very small team though; I regularly work on projects with dozens of active branches.
I use the
lazygit
TUI for most stuffSame. Have it baked into my neovim setup.
I use my IDE for basic things, but anything more involved i use git directly. It’s really not as intimidating as it’s made out to be. I’m no expert by any means but i know enough to get around and read the docs when i need help
There are certain things that are easier in a UI like finding the commits related to a defective feature and rolling them back, but for most operations I use the CLI.
[email protected] is for things related programming.dev, you should repost the question in [email protected] or [email protected]
> git diff > git add `!! --name-only` > git commit - m "updated doc" > git push origin HEAD
is probably 50% of my work machine bash history. Also fun trick for anyone who doesn’t know:
git checkout -
checks out the last branch and it’s great. “Damn, I need to pull main into this branch” becomes
git checkout - git pull git checkout - git merge main
I never do prs or anything from the terminal, web interfaces have spoiled me on that, but for adding, committing, pushing, and pulling I use the terminal! I even wrote a little helper script with some common shortcuts I use (cad - add and commit, cal - commit and add the list file I diff’d, amend, etc). It even has a default command that shows branches and lines of code changed:
I am more than happy with Jetbrains and Visual Stuido to do most of my work. While VS has some annoying irks, I just like things more visual such as handling merges through seeing the code as I used to instead of a text like visualization.
I do occasionally need an empty commit, visit the reflog because I fucked up or just do some check on existing commits on a branch. But no, daily I just do pull, merge, commit and push through my IDE.
Most GUI. Everything is nearly just one keystroke away when I’m in my IDE and it’s way faster than the CLI. The CLI is only used when doing really really quick things like checking out another repo that I don’t want to open the IDE for. Also messing with work trees requires the CLI.