By the end of this chapter, you should be able to:
Once you have a GitHub account, head over to https://github.com/new and create a repository. In this example, we will be creating a repository called
first_repo. Do not worry about the description or checking the box to initialize the repository with a README.
After you've created the repo, GitHub will give you some instructions to get started. The instructions should look something like this (the url towards the end will depend on your GitHub username):
echo "# first_repo" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/elie/first_repo.git git push -u origin master
Let's go through these commands one by one.
echo "# first_repo" >> README.md - we are passing some markdown into a file called
git init - make sure we have a repository
git add README.md - let's add the
README.md file (we can also do
git add . or
git add -A here)
git commit -m "first commit" - add a commit with the message "first commit"
git remote add origin https://github.com/elie/first_repo.git - this is where things get fun. This command tells our local repository about a remote repository located somewhere. The location of our remote repository is
https://github.com/elie/first_repo.git. Now if we want to send our code to GitHub we can just type in
git push https://github.com/elie/first_repo.git master - but typing that whole URL is quite a pain. Instead, it would be better if we could give the URL a nickname (also called an alias) - that is what "origin" is! By setting up this alias, we can simply type
git push origin master to send the code from our
master branch to this remote repository.
So going back,
git remote add is how we tell our local repository about a remote repository (that we can send/retrieve code from).
origin is a nickname for where the repository is actually located (at
To see your remotes locally you can type
git remote -v. If you need to remove a remote you can use
git remote rm NAME_OF_REMOTE
git push -u origin master - Now we can send our code from a local repository to our remote repository (which we aliased to
origin in the previous command). The
-u flag allows us in the future to only have to type
git push instead of
git push origin master.
So to review this command -
git push is how we send code from a local repository to a remote repository.
origin is where we are sending it (specifically to
origin/master which is the master branch on our remote repository).
master is the local branch where we are sending our code from.
Now when you type in
git push, you will be prompted to enter your username and password for GitHub. While that is fine once or twice, it becomes quite a nuisance if you are pushing or pulling (retrieving code) frequently. It would be nice if we could establish some trust between our computer and GitHub so that when we run
git push or
git pull, GitHub does not need to authenticate us. To do that we are going to create an SSH key.
When you're ready, move on to SSH Keys