Welcome To Turtle's Community Pizza Shop
Welcome to Turtle's Pizza Shop, a restaurant where anybody can submit their favorite recipes for a chance to win free pizza for a month if your recipe is chosen! In this section you're going to get a copy of the recipe book and use Git to add your signature pie for an entry in the contest!
Welcome To Purtle's Community Pizza Shop
Oh no! Purtle lost the contest and wants to make his own pizza shop now. What happens in a community when two parties disagree over the path of a developing project? We use a fork! Git also allows us to branch off from projects and continue our own paths. Our adventure continues when Purtle opens Purtles Perfect Pizza!
Developing Our Recipe
Let’s Store Our Progress
Git lets us place a bookmark in our progress so that we can return later if something went wrong along the way. This snapshot is called a ‘commit’. Let’s add our recipe in Git so that we can save the progress in a commit before we continue. The following commands should be done in the same directory we just cloned, with the rest of the recipes.
Add the new recipe with your unique filename like this:
git add best-pineapple-pizza.txt
(In this case, I decided to name mine
Git will only track the files and folders it clones and the ones you tell it to watch. You can see what Git thinks is going on in your repository by typing
git status after you save your new recipe which will show you what’s been modified since the last commit. A commit is basically just a save-point in your progress so you can easily go back later and see when something changed.
In our recipe, we should have a list that looks something like this:
dough, sauce, cheese, mushrooms, pineapple
Let’s store our changes! Save your recipe and create a commit like this:
git commit -am "adding Purtle's Best Pineapple Pizza"
The message in the commit there is very important so that later when you or your helpers want to see where a certain part changed, you can easily find where the change was made and who changed it.
Don’t Neglect The Pepperoni
That sounds pretty good so far, we’ve got a recipe for a tasty pizza with pineapple, mushrooms, and cheese, but we forgot the pepperoni!
Go ahead and add pepperoni to our list of ingredients in your unique recipe and save the file.
Now that you’ve fixed the recipe, make a commit that has the commit message
"adding pepperoni to Purtle's recipe"
Since the new recipe file was already added to the repository earlier, you didn’t have to add it again before the second commit because Git was already watching it. Once a file is added, you don’t have to add it a second time for Git to track the changes.
You can view your history of commits by doing
git log which should show two of your commits:
"adding Purtle's Best Pineapple Pizza" and
"adding pepperoni to Purtle's recipe" with timestamps for those changes.
The recipe is complete, now what?
Let’s retrace our steps a little bit and review: first we cloned a repo, which put a copy of the recipe book on our computer, then we added our recipe and made a few commits to the repo on our computer. What now, though? How do we get the code into the Github repo we saw on the website? In reality this goes several ways, if you cloned a repo you had access to, you can just “push” your code because you already have permission to modify that repo, if you cloned the repo in this example, you probably don’t have permissions to access it, so the part about “pull-requests” will be more relevant to you.
If you have permission to the repo
For example if you forked a repo via the website, and then cloned your own personal copy from your repo, do this:
git push origin master
This should send your changes to the remote repository, in the off chance that someone modified it since the last time you pulled the updates, you can do
git pull before you
git push to get rid of any nagging errors about not having current commit history present when trying to push.
If you don’t have permission to the repo (this is you, reader)
Let’s say you saw a recipe that had a typo, you’d fork the repo, push the changes, and then request that the owner pulls in your fix. This is called a “Pull Request”, and it’s how you contribute changes to a project owned by someone else. Pull Requests don’t happen in your terminal, they happen on the website that tracks your git repos, but the process is the same:
- fork a repository
- clone your fork of the repository
- commit your changes and improvements to your own fork
- push to your fork of the repository
- make pull request between the two repos, your fork and the original repo
When your pull request gets accepted by the owner of the repository, you can delete your copy since the changes will exist in the main repository. But if your pull-request doesn’t get accepted? No way, surely this pizza recipe is a winner….. right? Let’s find out!
Make a pull request with your recipe to