From GitHub's about page: "GitHub is how people build software"
GitHub is a website meant to make the git
version control system actually useable for humans.
The main page is: www.github.com
GitHub is great for:
- Storing code
- Contributing to other people's code
- Getting help with other people's code
- Keeping track of issues
Once you're logged in, GitHub will bring you to a page with several important sections.
- On the left is your newsfeed, which tells you about updates to repositories or users you watch
- In the top right is messages from GitHub
- On the right are all your repositories
Repositories are locations where code (and other things) are stored and placed under version control. The repository is on one GitHub's servers.
Version Control is a system of keeping track of changes to a document. It's like Track Changes in Microsoft Word, but better. With version control, it is easy to "undo" work that may have been done weeks or even months ago.
The version control system GitHub uses is called git
.
The main function of GitHub is to store repositories, so let's create one. To do so, look on the right side for the button that says "New repository". It is next to the section that lists your current repositories.
Click the button to create a new repository.
In the next window, enter a name into the box. You can also optionally enter a description in the box below. Additionally, you can initialize the repository with a README.md
file. That means that when the repository is created, it will start by having a text file called README.md
. The extension md
stands for Markdown
format that we saw earlier brifely in the Jupyter Notebook lesson and we will cover more in depth in the RMarkdown lesson.
Congratulations! You now have a repository. To get it on your computer, you must now clone the repository. This will create a folder in your current directory and download all of the files -- as well as the entire history of the repository. It will also configure your computer to upload and download the repository.
The way git
implements version control is through something called a commit. A commit is a snapshot of a repository. It's similar to saving a file, except instead of one file we're making a commitment to the entire repository.
Making a commit is a two-step process:
- Add to the commit using
git add filename.txt
- Do the commit using
git commit -m "helpful message"
To upload the commit to GitHub:
git push
- If that doesn't work, do
git push origin master
To update your local copy from GitHub:
- git pull
WARNING: ALWAYS git pull
BEFORE you start working or git will complain.
A useful feature of GitHub is the ability to keep track of issues. Issues remind you of problems in your code. You can also open issues on other people's code. It's best to be as specific as possible and give as much information as possible to help the maintainers fix your problem.
You can cite issues in commit messages and they will show up in the issue. You do so by referencing the number of th issue. For example: git commit -m "work on #1"
.
You can close issues through GitHub or through a commit message, by including the number in the message along with a word like "fix" or "fixed". For example: git commit -m "fixed #1"
.
Forking a repository will copy it and create a repository in your account, under your control. It is completely separate from the repository it was forked from, though GitHub is aware of its source. To fork a repository, click the Fork
button in the top right.
A Pull Request allows you to contribute the changes in your fork back to the original repository. Of course, this requires the permission of the owner of that repository.
GitHub understands the value of helping students learn their tool. If you're a student, you can get free private repositories and many other professional services for free at https://education.github.com/