DEV Community

Ben Halpern
Ben Halpern

Posted on

The fact that I barely know how to use git has been biting me in the butt a lot lately 😭

Easily the weakest part of my dev game is git, which is probably the most universally important tool to know.

I've been painting myself into frustrating git corners lately and I think I need to expand the number of commands I truly understand.

Thank you for listing ❤️

Top comments (18)

Collapse
 
deciduously profile image
Ben Lovy
Collapse
 
holywar20 profile image
Bryan Winter

Understanding Git concepts is easy. That takes like an hour. Understanding what it does when you type the command is hard. That part only comes from memory and the fear of explosions when you type the wrong thing.

Also bad architectural problems can be magnified with git. I used to work at a place that migrated an insane number of custom files into a single git-repo, and basically git add -A would result in silently adding thousands of files to your push, because it was configured to hide changes since it was so big you couldn't actually see the files you changed. Which meant manually tracking your file names on notepad and only adding those.

“A computer lets you make more mistakes faster than any other invention with the possible exceptions of handguns and Tequila.”

― Mitch Ratcliffe

Collapse
 
ben profile image
Ben Halpern

😬

Collapse
 
jmfayard profile image
Jean-Michel 🕵🏻‍♂️ Fayard • Edited

Personally I use GitHub desktop

$ brew cask install github

I know, no real developer and no true scotsman should use a GUI for git.

But in fact, GitHub desktop is 10 times more usable than the command-line.

Collapse
 
joshistoast profile image
Josh Corbett

Gitkraken is by far the best GUI out there, no cap.

Collapse
 
philnash profile image
Phil Nash
cd ..
rm -rf project
git clone PROJECT_REPO
cd project
# start again
Enter fullscreen mode Exit fullscreen mode

I've done this too many times in my life.

Collapse
 
pandademic profile image
Pandademic

who hasn't?

Collapse
 
waylonwalker profile image
Waylon Walker

Me too

Collapse
 
sargalias profile image
Spyros Argalias • Edited

Sorry, I know this is a month old post...

Reading through the Atlassian git tutorials (which took me a bit under a weekend) was really good. I went from beginner user to understanding git very well for all work purposes.

You can get anything else you need from Google.

For context, whenever my colleagues had git questions they usually came to me or one other developer. Either of us could always answer their questions.

The next resource on my list is Pro Git, I've heard good things about it. However it's very low priority at the moment because the Atlassian tutorials gave me pretty much all I need in terms of Git knowledge.

Collapse
 
recursivefaults profile image
Ryan Latta

Hang in there. Everyone goes through this.

99% of the issues come from not quite understanding how git tracks changes when you try to merge.

Frustrating but learnable.

.05% come from a bad rebase. This is a hellscape.

.05% is forgetting to add a file when you commit.

Collapse
 
patryktech profile image
Patryk • Edited

Same. Haven't had any major accidents in years, thankfully, but it's cryptic for sure.

I quite enjoyed this talk: Rules to git by. It probably won't help with your issues, but if you've got 45 minutes to spare, it's worth a watch.

Collapse
 
amberjones profile image
AmberJ

OhShit,Git!?! has saved me more than once

Collapse
 
zacharythomasstone profile image
Zachary Stone

Don't mind me I am just bookmarking this for later...

Collapse
 
manuelojeda profile image
Manuel Ojeda

There is not shame on it, I been using it since late 2017, is better late than never.
Also is recommend to focus learning to use it through CLI instead of desktop, there is more power via CLI 🤘

Collapse
 
sirseanofloxley profile image
Sean Allin Newell

Ben; I believe in you!

Collapse
 
simbo1905 profile image
Simon Massey

I can highly recommend reading Git From The Bottom Up.

Collapse
 
brandinchiu profile image
Brandin Chiu

A great way to learn is by getting started with a git client. Then extrapolate what you're doing. Some clients will even show logs of the commands that get run when you push the buttons.

Collapse
 
olore profile image
Brian Olore

ohshitgit.com/ is a must have reference!