WYSEguidance Logo

Susan Gessing – Learned the Basics of Git & Github!

Dive: Coder - Git
Description: Can use both git and an online repository system
Level: Level 1
Level Requirements: Can use git at a basic level and has an account with an online repository
Certified On: Jan 3, 2021

Editor’s Note: On all dive certifications, we try to edit the writing as little as possible to preserve authenticity, personality, and writing style. We typically fix spelling errors, but minimally modify grammar and sentence structure (just enough to ensure readability).

Susan Gessing

Name: Susan Gessing Break Diving Level: Recruit Number of Certified Dives: 3 From: United States In: United States

1. When and Why Did You Decide to Pursue This Dive At This Level? What was your inspiration and motivation?

I discovered Git and Github approximately 2 years ago when I decided to research what I would need to know to become a web developer. When I researched companies who were looking for web developers, I found that, more often than not, Git was the version-control software that was being used to keep track of software changes. I realized this was the case not only when looking into available paying jobs, but also with volunteer positions as well. I realized, then, that if I’m going to be successful in this trade, I would need to be familiar with these technologies.

2. How Long Did It Take For You To Accomplish This Dive At This Level From The Day You Decided To Pursue It, And Why Did It Take That Long?

It has taken me at least a month to pursue this dive. I have had to do research on the internet, watch videos, and take notes. Most importantly, I’ve had to actually USE Git here at Break Diving to incorporate changes that I’ve made to the site. Before submitting my certification, I wanted to make sure that I understand fully what I was doing rather than blindly follow written instructions. I now feel confident about basic Git commands.

3. What Was The Hardest Part About Achieving This Particular Dive Level?

The most difficult thing I had to address was the difference between Git and Github. There is a desktop version of Github and a web version. To make matters more confusing, Git is used only on the command line. I didn’t understand why you would do one thing on Github and another on Git. Now, I understand that often times, you can do the same task on either Github or Git. Certain tasks are easier on Git and visa versa.

4. What Was The Easiest Part About Achieving This Particular Dive Level?

The easiest part of my learning Git was being familiar with version-control software in general. I have used other version-control software in my past. Therefore, I was familiar with such things as repositories, committing, and versioning. I understood the concept of how the software simplifies the process of keeping versions/changes saved.

5. What Is Your Advice For Someone Who Is Pursuing This Dive And Level?

My advice would be to ensure that you actually practice the terms you are learning about. For example, download Github and create yourself a small project. Practice creating a repository. Practice checking out branches, editing files, adding, and committing. Notice how well Github keeps track of every change you make to each file.

6. What Are Some Of The Best Resources You Recommend to Those Pursuing This Dive At This Level, And Why Do You Recommend Them? Please Include Relevant Weblinks, If Applicable.

A great tutorial on Git and Github.
A tutorial on Git basic concepts.

Resource 1: Break Diving - Many people here can answer your git questions.

Resource 2: Git Tutorial on Hubspot - Learn the basics here.

Resource 3: Github Tutorial on TutorialsPoint - Learn the basics here too.

Resource 4: -

Resource 5: -

7. Tell Us A Story Of One Of Your Adventures While Pursuing This Dive (At This Level).

I actually had several adventures during completion of this dive:

a) I created my first ever pull request using what I learned while preparing for this dive. I was able to successfully create a new branch and make my changes there. This included using the add and commit commands, among others.

b) I successfully reviewed my first pull requests! I obtained the branch that the changes were on and reviewed/tested the changes. This included checking out the branch so that I could test the changes.

c) I finally understand the difference between adding and committing! Add adds files to the “staging” area in preparation for a commit. Commit commits the files to the repository. You can do both at once by including a “-a” with the commit command.

d) I finally understand the difference between Git and Github! Github is a web-based entity where teams can work on the same code set or repository from all over the world. Git is used on the command line to manage your own, local repository. You can pull the latest code from the remote repository or push your local changes to the remote repository.

e) I’ve figured out a new, very successful way of learning when taking a video course! I keep a Windows sticky up next to the playing video and take notes there. Although this slows me down, I find that I remember things better. When I am done the course, I transfer all my notes to a Word document and clean them up a bit. This gives me additional review of the information.

8. What Evidence Did You Submit to Prove You Met the Requirements for This Dive and Level?

I am part of the Break Diving coding team, but beyond that, here are some notes I took that I have found helpful:

Please note that some of these notes were taken on the fly, as a video plays, so my grammar isn’t perfect; my aim is to enter just enough information to get the main point across so that I learn in a reasonable timeframe.

There’s the 1) working dir and 2) staging area

Working directory – when you type “ls”. All the files in your local directory.

He makes a change

git status

Shows modified filename in red. Not added or anything yet.

git diff

Shows changed text

Move changes to staging area:

git add filename

git status

Green now

It is now under “changes to be committed” – this is your staging area. You are saying, “I want this to be part of my next commit, my next snapshot.”

You usually put everything in staging area then review.

So, review before commit:

git diff –staged

clear the console anytime.

git commit -m “Description here…”

git status  Nothing to commit now. No more green. Green = added = ready for commit

git log  You’ll see the snapshot (commit) you created. It’s now in .git folder. Staging area is wiped clean.

When we 1st commit, it’s a new checkpoint with your message. Now. Can do a new commit on same branch, different message.

git branch  To see all branches that everyone is working on. Branch you’re on has a *.

git co -b add_person  -b = brand new branch. co = checkout

(<branchname>)$git status  //change to the branch in red

”  git diff

”  git add -A  //add all files

”  git status  //green, so added

”  git commit -m “changed..”

” git log  //all commits

” git branch  //still on the branch

Could have done commit on master. Now, merge into master.

” git co master  //move to master

(master)$ git merge add_person  //a type of commit

//Updated file is now in master. We see the change in our editor.

Want our code online.

Name the remote location where I want to put my code “origin”:

git remote add origin <remote repository>

Push my master branch to github

git push origin master

Github doesnt get the add_person branch here NOTE.

I want to jump back in time now to when I just added the computer player.

git log  I want to go see what a previous commit looked like. Copy the hash number then:

git checkout xxxxxxxxxxxxx

Sees the older code.

HEAD = what your current files look like. Sort of the “pointer”.

git co master  To go back to new stuff. Can point the head on a commit from a branch. So, diff snapshots in time.

Say we add stuff we dont want to keep. Haven’t “added” or anything yet.

Do a status and diff to see your change. Will be red. Then:

git reset –hard   //removes new changes

Changes are gone. Back to last snapshot.

Made more changes. Maybe even did an add. So, status gives green for that one. We don’t want one of the changes. You see the names when you run git status. Want to remove the green one.

git reset <path in green>.  This one is red now. So, NOW if you commit, green change is now gone with status call and red one is there. Change is still in code unless you do a hard!

Check out a new branch for each feature.

(After an add, diff shows nothing. Need to do a git diff –staged because they are in staged now.)

git commit  Creates the checkpoint. Commit often. Each commit has its message. Can ondo easily.

git reset  Undo the add. Won’t be added during a commit call.

9. Will You Be Pursuing The Next Level For This Dive? If Yes, Why? If Not, Why Not?

I would like to do that, yes. Every time I do research on Git, each site that I find has something that previous sites did not. This tells me that the world of Git is vast and that I have a lot more to learn. I need to make sure that I know all the commands I need to do my job. Beyond that, the more I know, the better.

10. What is the Break Diver's Creed?

No Rules. No Excuses. No Regrets.

Certificate photo:

And having made this post, and provided adequate evidence to the dive committee, Susan Gessing is now hereby certified by Break Diving, Inc. as: Coder - Git - Level 1. Congratulations ! Thank you for being an inspiration to others!

Certificate number: 73

The author above wrote this WYSEguidance post as one of the certification requirements to become certified by Break Diving, Inc. for a dive completed. Would you also like to find greater success, happiness, and friendship, and make genuine supportive connections with others around the world pursuing your same dreams? Come join us at Break Diving and soon your story will be the next one you read about on this site!

Break Diving Advertising Photo
Read More Stories on the WYSEguidance Homepage