this post was submitted on 20 Jun 2023
13 points (100.0% liked)

Programming

13608 readers
1 users here now

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.

founded 2 years ago
MODERATORS
 

I ask because I like console, but at the same time have difficulties remembering all the commands. I'd like to try a GUI that is comfortable to use with only a keyboard.
[edit]
My inbox got fediversized, fantastic feeling.

top 34 comments
sorted by: hot top controversial new old
[–] Da_Boom@iusearchlinux.fyi 3 points 2 years ago

I don't use a GUI, with the exception of Meld as my primary difftool

At work I wish they were using git. But we got SVN. How I long for the ability to use pull requests. But tortoiseSVN has some nice features (I'm stuck with windows over there) even if it's lacking in overall functionality.

[–] sznio@beehaw.org 3 points 2 years ago

I use the VS Code built-in git support for making commits, and fall back to the CLI for anything else.

You won't have trouble remembering commands once you use them often enough. And you don't need to know all of them, just the ones your workflow uses. My toolbox is commit, checkout, status, reset, rebase -i, merge, bisect. That's all I need day-to-day.

[–] cityboundforest@beehaw.org 2 points 2 years ago

Since I work in Linux and primarily code in languages like C and C++ (i.e. compiled langs), I work completely in the terminal, so I don't use any GUI. It's nice and I'm already there for my compiling so I might as well use it for git.

However, re remembering all the commands, there is a nifty website I found a while ago and bookmarked called Git Explorer where you basically choose from dropdowns of what you want to do and it gives you the command(s) for it.

[–] s_w@beehaw.org 2 points 2 years ago (2 children)

I use IntelliJ's built-in git GUI.

I don't understand why people use command line only. Sure, learn the commands so if you need to use them you can, but most GUIs are far more feature rich than command line. With IntelliJ, I can easily view differences before committing, have it do code quality scans, automatically clean up any code it can, more easily choose which files I want to commit vs the typical 'git add .' I see most people do with command line, have separate changelists when pair programming, and much more.

One argument that continually comes up is that command line is faster. I completely disagree. If I want to just commit the code without reviewing it, I can use 2 hot keys and the code is committed and pushed. But as I do a quick readthrough of all the code first and review issues from the code quality analysis it does take more time, but still less than it would to do comparable things with command line.

[–] pinkpatrol@anarch.is 1 points 2 years ago

I'm a heavy intellij user, but the git log UI always confuses me. When I open 'git log' via the action menu IntelliJ doesn't focus my current branch. I am not sure if there's some other menu I'm supposed to use to achieve that.

I do use the commit local changes, pull changes, merge branches functionality a good bit. My only feedback there is that I haven't found a way to quickly commit changes without running git hooks. Each time it requires me to open up the gear icon and deselect 'git hooks'. This is slower than using the command line where I can write git commit --no-verify and repeat the same command again and again. I know it's a niche need, but it's necessary for testing a rather archaic system we maintain.

[–] dbanty@beehaw.org 1 points 2 years ago

The IntelliJ merge UI is the only way I ever want to deal with merge conflicts. So much better than any of the alternatives I’ve tried!

[–] hunte@beehaw.org 2 points 2 years ago

Since I use Emacs I've been really happy with Magit, even tho it's UI has a bit of a learning curve to it. I've been also trying out Gitg since I moved back to GNOME and it's been really solid as well. It lacks a couple really nieche features but otherwise as a fast commit tracking/writing tool it's very good.

[–] qevlarr@beehaw.org 2 points 2 years ago* (last edited 2 years ago)

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.

[–] shaggy@beehaw.org 2 points 2 years ago

I use SourceTree regularly, but when shit hits the fan, I always fall back to the terminal.

[–] davehtaylor@beehaw.org 2 points 2 years ago

I have some git blame extention in VSCode, but otherwise no. Something about using gui tool for git makes me feel so disconnected from it, like I'm not entirely sure what's going on, and afraid I'm going to fuck something up

Also, I forget commands all the time. Mostly ones I don't use often, like changing/adding/removing remotes, changing settings, etc.

[–] Unimeron@feddit.de 2 points 2 years ago

KDE has a relatively new git tool named Kommit: https://apps.kde.org/de/kommit

[–] thepaperpilot@beehaw.org 2 points 2 years ago (1 children)

I use sublime merge because I really like ST and want to further support the dev. I wish it had more integrations with github (and theoretically github alternatives), but I understand the reasoning not to. Before SM came out I just used the command line exclusively.

[–] pkulak@beehaw.org 2 points 2 years ago

I never use Sublime Text, but I love Sublime Merge. I dunno why. Something about the UI just works for my brain, and the merge UI is amazing. I only ever open it with smerge . in a directory, and it's set to floating in my window manager so it pops up, I do my thing, and it goes away.

[–] exu@feditown.com 1 points 2 years ago

Magit with emacs (doom emacs to be fully honest). More a TUI, but definitely fully keyboard driven :)

[–] djoot@feddit.dk 1 points 2 years ago

Lazygit changed how I use git, it is so easy to do all the daily essentials like branching, committing, and merging, but also also does more advanced things like interactive rebasing when needed.

I had searched for a proper git client, that was free and open source plus worked on both Linux and Windows, for a long time and I haven't looked back after finding lazygit.

[–] ChrissieWF@discuss.tchncs.de 1 points 2 years ago

Developing in a Windows environment, I generally prefer Git Extensions.
It doesn't distract the eye with unneeded fancy and is very close to a command line git experience but still allows me a better visual sense of the repository and branches.

[–] Kissaki@feddit.de 1 points 2 years ago* (last edited 2 years ago)

I use TortoiseGit.

The log window gives me overview and almost every action I need. Committing, diffing, switching, rebasing, creating and deleting branches and tags, pushing, fetching, merging, view logs of files, blaming, filtering…

The log view is still much better than the VS Git log view. And due to it's visual GUI it's much better than CLI when going beyond just one branch or a low number of my own branches.

[–] Kernel@beehaw.org 1 points 2 years ago (1 children)

It's a paid app only available for Windows and Mac at the moment, but Fork may be worth a look: https://git-fork.com

[–] BentiGorlich@thebrainbin.org 1 points 2 years ago

I am using it too and I love it. I only know source tree as a competitor and in comparision it sucks....

You dont have to pay for it, even when using it comercially (unpess they changed that)

[–] Joph@programming.dev 1 points 2 years ago* (last edited 2 years ago)

I use the TUI gitui Though I also use the git cli directly too, depends on what I'm doing.

[–] abhibeckert@beehaw.org 1 points 2 years ago* (last edited 2 years ago)

I use various extensions for Visual Studio Code. They add a million features, but these are the ones I find most useful:

I prefer to view the current status of my checkout in the sidebar of my code editor than on the command line.

It's easier to view a diff of a file and decide whether to stage or rollback changes in a GUI. With most GUIs you can even select individual lines of code and revert or stage them.

I like how Commit and Push and Pull are a single "Commit & Sync" button in Visual Studio code. Similarly there's a simple "Sync" button in the status bar.

Speaking of the status bar - it also has a counter for commits that need to be pushed or pulled. And it tells you what branch you're currently on. And whether you have uncommitted changes. Handy.

I find the GUI equivalent of git log --graph is significantly easier to understand when the graph is drawn with nice vector lines instead of ASCII art.

Finally - I don't just use raw git, I also use extensions like pull requests, and I create branches for issue numbers. I have an extension that shows pull requests in Visual Studio Code and also shows issues assigned to me, with a one click "Start Working" button to create a branch named after the issue and change the issue status to In Progress. And when I'm finished working on it, there's a button for that too.

[–] vredez@discuss.tchncs.de 1 points 2 years ago

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.

[–] alottachairs@beehaw.org 0 points 2 years ago (1 children)

Github desktop is the only way I know how to clone my private repo. I do not understand how to clone my private repos through CLI.

[–] variouslegumes@reddthat.com 0 points 2 years ago (1 children)

Github desktop will get you into trouble if you ever try to work with a team. Fine for solo development

[–] MoonRocketeer@beehaw.org 1 points 2 years ago (1 children)

I use Github Desktop but am looking to start moving toward CLI soon for this reason; though to be honest, I only know it's not good practice and don't know the reason why. What kind of issues can happen in a team environment using it?

[–] variouslegumes@reddthat.com 0 points 2 years ago (1 children)

The CLI and probably other more advanced guis are going to give you the option to:

  • bisect: very useful for debugging. Like definitely check it out.
  • rebase: excellent for clean commits. I use it all the time to squash commits together
  • diff arbitrary branches and commits. Super useful for debugging.
  • cherry pick: useful to apply a commit from a different branch or remote
  • Apply: I use it to pass around patches for things for testing / debugging.

That's just off the top of my head and also stuff that you can learn on the job. Good to know it exists though. I still use a "gui" (fugitive for vim) for simple tasks, like staging files 🙂

[–] ascense@lemm.ee 3 points 2 years ago* (last edited 2 years ago)

For me, I don't think I could survive without git stash, I use it daily for various reasons (e.g. for validating a small bug fix, git stash & git stash pop lets me attempt to reproduce the issue both with and without a correction). The one downside with the CLI stash command is that it's very easy to forget things in stash though, but I don't think GUIs generally support stashing?

Another one I find myself doing quite often is git checkout BRANCH -- PATH, to pull specific versions of files between branches.

[–] evolatic@beehaw.org 0 points 2 years ago (1 children)

I use GitKraken. It has a beautiful interface. It's free to use non-commercially but I pay $50/yr so that it can connect to my companies Enterprise account. I know I'm weak with git (I get the concepts but I'm a visual person) so the money is worth it to me.

[–] Hellebert@beehaw.org 1 points 2 years ago* (last edited 2 years ago)

It's not free to work with certain things like private GitHub repositories unfortunately.

[–] Xanvial@lemmy.one 0 points 2 years ago* (last edited 2 years ago) (1 children)

I use git fork on Mac, same reason, I don't remember all the commands. Also want to see the history visualization

[–] CrawX@discuss.tchncs.de 1 points 2 years ago

Seconded. Easily the best UI in my opinion. I usually commit through IntelliJ and use fork for everything else.

[–] priapus@lemmy.one 0 points 2 years ago (1 children)

I use Lazygit, which is a TUI. It is entirely controlled by keyboard shortcuts and has a lot of quick ways to do tedious things.

[–] Viktorian@beehaw.org 0 points 2 years ago (1 children)

+1 for Lazygit. It doesn't cover all of my needs so I have to use the CLI for a few small things, but for 99% of your typical git usage this tool is such a gift.

[–] dmrzl@programming.dev 1 points 2 years ago

I'm curious: what's missing for you?

I needed a few smaller features (like rebasing onto any commit, not just HEAD) and found the code quite easy to adapt to my needs (had to take half a day to learn Go first though).

A proper gerrit integration would be awesome though.

What's lacking for you and where did you end up tool-wise?

load more comments
view more: next ›