Git is a version control system. Imagine working on a codebase with 3 engineers, (A,B,C)
3:00pm → A updates code with new feature
3:15pm → B updates code with new feature
3:16pm → A updates code with new feature
4:20pm → C updates code with new feature
5:00pm → You notice that your users are complaining about bugs in your app.
With git or other version control systems, upon noticing the bug you can revert the code to 4:20pm, 3:16pm, 3:15pm, or anytime in history to find a place where there is no bugs. Problem solved!
(This example is overly simplified)
Treat the curriculum like you have joined a new company and working on a new
codebase. The first thing you should do is to download it onto your machine. To
do this, you need to run
git clone url-to-codebase. For C0D3 curriculum, the
After downloading the codebase, you should run
git status to see which branch
you are on, which will be
Master branch will be where your most
perfect code live (after getting reviewed), so you do not want to make any code
changes on this branch. Instead, you should create a new branch.
Treat each problem like a new feature in the codebase. To start problem one, you
want to create a new branch called
p1 (which stands for problem 1). To do
git checkout -b p1 . After this, run
git status to make sure you
are indeed on p1 branch.
After solving problem 1 and passing all the tests, you should feel confident to save your code changes. To do this, there are 2 steps:
git add filename → Add all the files that you want to commit (aka save
changes). If you are unsure of the files you have changed, run
git status .
git commit -m 'your message here' → When you save your changes, it is
necessary to describe what your changes are. This way, in the future you can
read the history of commit messages to understand at a high level all the
changes that happened.
git log → This commands display the history of commit messages. In this mode,
use the arrow keys to scroll up and down and press
q to return to the command
If a typo is discovered in your latest commit, use
git commit --amend to
correct the typo.
After submitting a problem, you might be tempted to immediately start working on the next feature. This is not good. It is bad practice to submit 2 features together. Here is the correct way to start a new problem / feature:
git checkout master
git checkout -b p2
git clone urlto download a codebase
git checkout -b branchnameto create a new branch
git checkout branchnameto switch to existing branch
git statusto view your current branch and the files that are changed
git logto view commit message history
git commit --amendto edit the latest commit message
git add filenameto add the file you want to save
git commit -m 'message here'to save your changes and write a meaning message to describe your change
First, figure out which branch is the culprit.
git checkout p1 to switch
git diff master to see what will be submitted. This compares the changes
between the current branch and master. If everything looks good (only changes in
one file), switch to a different branch and run the diff command again.
Once you have found the bad branch, the easiest solution is to delete the branch
and submit again (if you've done it before, you can do it again!). To delete the
branch, first go to master:
git checkout master, then delete the offending
git branch -D your_offending_branch_name.
Now, from master, you can create a new branch
git checkout -b whateverBranchItWas and then continue normally.
Check The Missing Semester if you want to learn more about git and other useful tools.Edit this page