This short project will demonstrate how to use Git to manage and track your project folders.
- You will set up a remote repository on GitHub and then copy it onto your local machine.
- Once this repo is set up locally, you will be able to use Git like a save button for your files and folders.
- When you have finalized your saves, you can then push your local repo up onto GitHub to share with everyone!
By the end of this lesson, you should be able to do the following:
- Create a Git repository on GitHub and copy it onto your local machine.
- Describe the difference between staging and committing changes.
- Describe the difference between committing your changes and pushing them onto GitHub.
- Explain how to check the status of your current repository from the command line.
- Explain how to look at the history of your previous commits from the command line.
In this project, we’ll walk through the basic Git workflow that you will use in all your projects.
Create a new repository by clicking the button shown in the screenshot below.
Give your repository the name "git_test" in the repository name input field, and create the repository by clicking the green "Create repository" button at the bottom of the page.
This will redirect you to your new repository on GitHub. To copy this repository onto your local machine, select the SSH option and copy the line next to it.
- In the command line on your local machine, navigate to where you want to store this project, and then clone your repository on GitHub onto your computer with
git clonefollowed by the URL you copied in the last step. The full command should look similar to:
git clone firstname.lastname@example.org:USER-NAME/REPOSITORY-NAME.git
- That’s it! You have successfully connected the repository you created on GitHub to your local machine. To test this, you can
cdinto the new git_test folder that was downloaded and then enter
git remote -vin your command line. This will display the URL of the repository you created in GitHub, which is the remote for your local copy.
cd git_test git remote -v
You may have also noticed the word origin at the start of the
git remote -v output, which is the name of your remote connection. The name "origin" is both the default and the convention for the remote repository, but it could have just as easily been named "party-parrot" or "dancing-banana". (Don’t worry about the details of origin for now; it will come up again near the end of this tutorial.)
- Create a new file in the
git_testfolder called "README.md" with the command
git statusin your terminal. In the output, notice that your README.md file is shown in red, which means that this file is not staged.
git add README.md. This command adds your README.md file to the staging area in Git. Now, type
git statusagain. In the output, notice that your file is now shown in green, which means that this file is now in the staging area.
git commit -m "Add README.md"and then type
git statusonce more. The output should now say, "nothing to commit", indicating that your changes have been committed.
git logand look at the output. You should see an entry for your "Add README.md" commit. You will also see details on the author who made the commit and the date and time for when the commit was made.
- Create a new file in the
hello_world.txt. In the terminal, type
git status, and notice
hello_world.txtis not staged.
- Open README.md in your text editor of choice and add the text "This is (YourUsername)’s first git project!" and then save the file.
- Back in your terminal, type
git status, and notice that README.md is now shown as modified, and not staged or committed. This is because you made a change to it, and it is already a tracked file.
Add README.md to the staging area with
git add README.md.
Can you guess what
git statuswill output now? README.md will be displayed in green text, while hello_world.txt will still be in red. This means that only README.md has been added to the staging area.
- Now, add hello_world.txt to the staging area with a slightly different command:
git add ., where the full stop means to add all files that are not staged. Then, type
git statusonce more, and everything should now be in the staging area.
- Finally, let’s commit all of the files that are in the staging area and add a descriptive commit message
git commit -m "Add hello_world.txt and edit README.md". Then, type
git statusonce again, which will output "nothing to commit".
- Take one last look at your commit history by typing
git log. You should now see two entries.
Finally, let’s upload your work to the GitHub repository you created at the start of this tutorial.
git push origin master.
git statusone final time. It should output "nothing to commit, working tree clean".
- When you reload the repository on GitHub, you should see the README.md and hello_world.txt files that you just pushed there from your local machine.
The main take away from the past few lessons is how to use Git and GitHub for your projects. You now have this very powerful skill that will help you immensely when we get into the coding projects. You will be able to share your work with others for code reviews and to get help with your code if you’re stuck.
In later Git lessons, we will cover some of the more advanced Git features, such as branches, which will further expand your abilities and make you more productive.
For now, concentrate on using the basics of Git that you’ve learned here with all of your projects from now on. You will soon know each of the basic Git commands from memory!
This section contains helpful links and supplemental content.
- How to add a Collaborator to your GitHub repositories
- How to Write a Git Commit Message by Chris Beams provides guidelines for writing neat and concise commit messages.
LOOKING FOR HELP?
When looking for help, try doing so in the following order:
- Did you try everything you could?
- Did you read the documentation?
- Did you Google for it?
- Did you post your question on Slack/Forum?
- Did you ask your fellow students for help?
- Did you ask your Mentors for help?
- Did you leave a comment on the comments section of this page?
- Did you ask your Instructor for help?