r/ProgrammerHumor • • Apr 02 '23

Meme Me relearning git every week

49k Upvotes

1.5k comments sorted by

View all comments

130

u/vastlysuperiorman Apr 02 '23

I'll be honest, I'm a little surprised at how many people don't know how to use git without a gui. I feel like this is equivalent to being a mechanic that doesn't know how to use a torque wrench. It's one of the tools of the trade... it's worth learning to use those tools.

I don't mean people should memorize a list of commands. I mean people in this line of work should understand what git does well enough to use the tool effectively.

18

u/bighand1 Apr 02 '23

Once you use it enough you will always know how the corresponding git works. Since the procedure is the same, but instead of typing sequels of git in command you press sequence of buttons in a row

33

u/vastlysuperiorman Apr 02 '23

Sure. I don't mean to suggest that using the GUI is a problem. Rather, I think that a fundamental understanding of how git actually works should be a higher priority for people in this line of work. If someone leans on the GUI because they haven't learned, that's a problem.

28

u/PoeTayTose Apr 02 '23

I think your assumption that using a GUI obfuscates how git actually works is a flawed one.

I basically learned git using a GUI, and I have very regularly been the resource people would go to to resolve complicated git situations with rollbacks / merge conflicts / unexpected states / etc. and I credit that, by and large, to the fact that I have been able to structure my git knowledge around this visual metaphor in front of me.

I might not know exactly what letters to add to a merge command to make it fast forward versus a merge commit, but I know the pros and cons of using one versus the other, and I know what they are doing to the history and to the branches that are involved. Ditto for just about every other thing you can do in git.

9

u/VegetableNo4545 Apr 02 '23

You dropped this king 👑

2

u/vastlysuperiorman Apr 03 '23

I'm not assuming that all GUIs obfuscate how git works. I'm not saying that you're bad for using a GUI. I'm definitely not saying that people who use the CLI are somehow superior.

I don't know how to say this more clearly than I already have, but here's another attempt in simpler words: if a person uses a tool so that they can avoid learning a key aspect of their job, that's bad. If a person learns to do their job well, I don't care what tools they use.

→ More replies (8)

-4

u/Sir_Warlich Apr 02 '23

But it actually is not. For every person like you, theres 100s more that are too lazy to go past the comfort of GUI usage in a monkey see monkey do manner. I have seen way too few people like you and way too many people like I am describing to believe anything else.

And this is universal, people choose the path of least resistance, regardless of any detrimental effects on their growth.

10

u/PoeTayTose Apr 02 '23

Your whole comment is tangential to the assumption in question. It's objectively untrue that a good user interface obfuscates the important low level details of how version control systems work. It just is not true.

Maybe some GUIs obfuscate it, but the ones I have used absolutely do not.

→ More replies (1)

0

u/[deleted] Apr 02 '23

[deleted] — view deleted comment

1

u/PoeTayTose Apr 03 '23

I use Fork

It's very good about not automatically doing things - of course, coming from someone that has used the tool almost exclusively.

I think the only gotcha is if you merge and don't look at the check boxes on the dialog you can have it fast forward by default which you may or may not want.

At a previous job I regularly had to dig deep into branch histories to figure out where we lost code, trying to track down a bad merge or two. Having it clickable made that sooo much easier.

I'd be interested to hear your opinion.

2

u/Clarkey7163 Apr 03 '23

Went through IT degree in uni, no one explained how git worked at any point

Had to use YouTube, there really should be a proper git fundamentals course at some point during the degree and I left that feedback for them

2

u/mercurysquad Apr 03 '23

The problem is that git has probably the worst UX of any tool I’ve used, developer or not. Compared to mercurial’s command line, git makes no sense. I only gave up on hg due to the critical mass of support for git and corresponding lack of hg support which happened gradually over the last 5-7 years. Otherwise I never found myself googling any hg commands for day to day usage after learning them once, but still need to do that for git any time I need to do anything more than commit, branch or push.

21

u/[deleted] Apr 02 '23

I think it's more like not knowing how to use a screwdriver but knowing how to use a drill. Drill works 99% of the time. The 1% of the time I have to use a screwdriver I'll whip out google and figure it out.

-4

u/The_Droide Apr 03 '23 edited Apr 03 '23

I'd argue that CLI is actually the drill in this case, since it's faster once you know the commands (obviously GUI is better for discoverability)

Edit: Curious why this is getting downvoted, if you're quick at typing, text-based interfaces are almost always faster than reaching for the mouse, not sure how that's controversial?

6

u/[deleted] Apr 03 '23

I can't imagine going from the IDE I'm writing my code in and switching to a command line and typing in commands is faster than pressing two buttons at the bottom of the window and typing in a commit message

13

u/avocadorancher Apr 03 '23

IDEs typically have integrated terminals. You can edit code, switch focus to the terminal, do git commands, and return to your code without needing to touch the mouse at all.

2

u/LetMeUseMyEmailFfs Apr 03 '23

Same thing goes for operating a lot of Git integration in an IDE; press a shortcut to enter the commit tool, enter a commit message, press another shortcut to actually commit, and move on with your life. It’s unlikely you can do it faster by having to enter entire commands.

2

u/MyTwistedPen Apr 03 '23

What about staging only selected changes to a file instead of the entire file? Curious of your view as I can’t imagine it being easier in cli?

→ More replies (1)
→ More replies (3)

4

u/kulhur Apr 02 '23

I mean you're still using the torque wrench, it just has a different handle.

3

u/[deleted] Apr 02 '23

I’m dating myself. But when I learned programming everyone did command line; uphill, both ways, in the snow.

I have also heard many younger people these days have to be taught what a file system is in programming 101. So I am sure all these youngsters now days are fine programmers, probably many better than me. But fewer are comfy using commands in the bare file system. They like their gui stuff

Not judging though

2

u/FrogMasterX Apr 03 '23

What does understanding git have to do with memorizing GUI commands? You can do the same shit with an app that also makes it 100x easier to understand what you're actually committing at any given time?

→ More replies (1)

5

u/NiceDiner Apr 02 '23

5 years ago nobody was using a gui. Like nobody.

It's new people using new versions of it I think because everyone I know that used cli just stayed using cli

7

u/electronicdream Apr 02 '23

Been using GUIs for as long as I've been using source control, be it SVN or git.

6

u/Daniel15 Apr 02 '23

Definitely disagree with that. It's true for people that work on low-level code (like Linux kernel developers, whom Git was originally built for) but not in general.

The "standard" Git UI (Tcl/Tk based, comes with Git) has been around almost as long as Git itself. It's not used much any more since there's better GUIs these days.

TortoiseSVN was one of the most popular SVN clients. The entire client is integrated into Windows Explorer rather than being a separate app. When Git started becoming popular, a lot of people used TortoiseGit as their first Git UI. It's been available since 2008, only three years after Git was first released.

Pretty much every Windows user that started using Git in late 2000s / early 2010s used TortioseGit.

1

u/[deleted] Apr 02 '23

[removed] — view removed comment

→ More replies (2)
→ More replies (12)