Git and GitHub

(or, how I will prematurely age in Phase 0 at DBC)

October 23, 2015

Hey y'all, I'm Dana. I'm a 36-year-old female with no real background in tech, and I'm 100% terrified of git and GitHub.

I like writing. About things I like. I kind of laughed when I saw my first writing assignment for Dev Bootcamp was to explain the benefits of git and GitHub to a beginner. That's like me being asked to explain to myself, who does not know how to do a front handspring, how to do a front handspring, by just trying to execute a front handspring and then explaining it--all of which sounds VERY PAINFUL and INACCURATE.

And that is how I feel about version control.

But hey, if you're the type of person who's willing to risk your neck learning a front handspring from a klutz, then hop on board, my friends--it's time for VERSION CONTROL 101 with Dana Motha-Lovin' BREEN y'all! TOOT TOOT!

Ahem.

Okay here's the deal: The benefit of using version control is that you always have a recent copy of your work saved in a sacred space, so if you screw up, you can revert to that most recent copy without having to go back to the beginning.

Git helps you keep track of changes by allowing you to make snapshots of your work in progress called "commits". Basically, after you've made any significant change to your project, you want to commit your changes in your git repository (e.g. take a snapshot). That way, you can use git log to look back over all the changes you made, and if you need to revert to an earlier version of your work, you can access that (*relatively) easily.

*By "easily", I mean for people who aren't me right now.

On to GitHub. You should use GitHub to store your code because God doesn't love you and wants you to suffer.

I'm kidding! Kind of. Definitely about the God's love part (YOU ARE LOVED) but not about the suffering.

GitHub, while I'm sure it's great for those in the know, is currently giving me more wrinkles than 36 years of life combined have been able to produce. It's so nervewracking and stressful that I have been honkingly irate at other drivers in my sleepy mountain town. I have been inappropriately annoyed at stray spoons left on the kitchen countertop. I look up from my computer into the loving eyes of my everlastingly patient partner, Nat, and, helpless to stop myself, leak pathetic tears of frustration and fear.

I'm gonna be frank, friends, GitHub is the single most fuck-up-able thing I've tried so far in my life, and I'm a curious person. I try a lot of things. I'm usually good at them. GitHub, nope.

I suck at GitHub. So, so much.

That being said, let me tell you (because I've been instructed to), why YOU should use GitHub to store your code.

1. You can collaborate with teammates near and far! With online version control like GitHub, you can all work on the same project by creating different branches, making your changes, submitting pull requests for peer review, and then merging it all together into one final, co-created project.

2. You will have an online repository that you can access from anywhere--even if you're not on your computer! Beyond that, you'll have an exquisitely detailed record of your project to date that you can use to modify or revert as needed. All those snapshots you took in git on your local machine? You push 'em right up to GitHub and you can see them listed out in front of you.

3. If that's NOT ENOUGH, you can be totally and completely mired in utter confusion and driven nearly insane with frustration while you're learning this shizz, wondering what on earth the error messages even MEAN while you sweatingly suspect that you just altered your bootcamp's repo in the most noob-y way possible and everyone is either: *a. Laughing at you. *b. Rolling their eyes. *c. Laughing AND rolling, which is somehow NOT the worst of the three.

But look y'all--we all start somewhere, right? And this is where I'm at. I know it will get easier from here (it's already getting better!) and the more work I put in, the more benefit I'll get out. So, I'm gonna push this baby up to GitHub (hopefully) and go over to Shortcut Foo to practice my commands.