JetBrains IDEs, I don’t remember the last time I used the CLI.
you have forgotten the face of your father
This is the way
I was looking for this comment. PHP storm and git are like best friends. I very very rarely need to resort to the CLI and generally that’s for hard resetting after I screw something up
Good luck doing anything remotely complicated/useful in git with an IDE. You get a small fraction of what git can do with a tool that allows absolutely 0 scripting and automation.
IDE git is less powerful than CLI git. However I’m pretty confident that most people use more features of git by using a GUI.
CLI feature discoverability is pretty awful, you have to go out of your way and type
git help
to learn new commands.With a GUI though, all the buttons are there, you just have to click a new button that you’ve been seeing for a while and the GUI will guide you how to use it.
It sounds like you don’t speak from experience. I have all the automation I need. It supports git hooks on top of IDE-only features like code checking.
If I have to fire up my CLI for some mass history rewriting (like changing an author for every commit), or when the repo breaks - so be it. But by not using the CLI I save my fingers and sanity, because committing a bunch of files is several click away with little to no room for error.
I can rebase, patch, drop, rename, merge, revert, cherry pick, and solve conflicts with a click of a button rather than remembering all the commands and whatnot.
I use the cli, but my main goal is to never have to do anything remotely complicated with git. Does it happen sometimes? Of course.
Learning git will give you the tools to work on projects on any git platform. It doesn’t matter if I’m in Forgejo, Gitlab, or Github.
And it will find you the most answers online in case you have a git related question.
CLI
Though I will admit it took me a while to get there
git add -i is where the true magic beginsAlso part of the Cli magic is a pretty git log tree like that:
https://stackoverflow.com/questions/1838873/visualizing-branch-topology-in-git/34467298#34467298And a proper diff tool like vim:
git config --global diff.tool vimdiff git config --global difftool.prompt false
(Current diff could be closed with :qa. All diffs could be closed with :cq).
GitHub desktop Stan here. Been a software engineer for over a decade and still love my UI tools. GitHub desktop is good enough 99% of the time.
I’d love to like the desktop app, but I just don’t understand what it’s doing under the hood when I click a button. When I click an icon, is it syncing my changes up as it pulls down, it just pulling down? I guess point and click is more scary to me when prod is on the line.
Why are you syncing directly to prod
I’m not? I just don’t like UIs
Prod being on the line meant “I’m on main”.
Yeah, I set up branch protection, but I hate the fact that some UIs are all “I know you just want to pull, but let’s push while we’re at it”.
If I may shill for a moment, that’s something I like about sublime merge - the buttons mostly map to git commands, and it has a nice log showing the commands it ran and their output.
How about you utilize proper CICD
I do. I just don’t like leaving the terminal
Vscode plugins?
Sublime-Merge
I love Sublime Merge. Worth every penny.
Sublime Merge, for most items in the UI it tells you the git command it will use
GitKraken!
I’d use Desktop if it worked, unfortunately recently it decided that I don’t have read/write access to a repo I’m working on. Works fine in git CLI so idk what the problem there is.
lazygit:
Freaking love TUIs, it’s like they took the convenience of a GUI and the efficiency of the CLI and merged them. As a Neovim and Lazygit user myself it’s amazing what I can accomplish in but a few keypresses.
deleted by creator
I think for most people it’s whatever you got used to first. I agree the hatred the GUIs get is overblown. I would always recommend people learn the command line but if you want to use a GUI, go for it, doesn’t affect me unless your commits are bad, in which case the CLI wouldn’t have helped anyway.
This is what I currently use, although I don’t really like the branch name color in last few versions, so kinda keep using the old version
using LazyGit in tmux has changed my workflow.
instead of:
git add . git commit -m 'foo' fg
i just:
g ac foo q
and it displays everything neatly
Edit: apparently greater/less than symbols dont render properly on lemmy. so imagine a few
(CR)
's and(C-b)
's sprinkled inAre you able to fall back to normal git commands if you don’t know the shortcuts? This sounds awesome until I can’t remember the syntax to do something I don’t do everyday.
you can run shell commands with
:
, and there may be a nicer way for git-specific commands which i dont know about.each ‘pane’ (such as ‘changed/staged files’, ‘commit log’, etc) has its own keybinds, which you can see with
?
CLI + IDE for git
LazyGit with lazygit.nvim checking in.
This is the way
SVN?