4 minute read
GitHub in GEN242
- Note, this class will make heavy use of GitHub
- Homework assignments will be submitted and graded on GitHub Classroom
- Course projects will also use private GitHub repositories: one repository for each course project (shared among students of each project)
- Each student will need a personal GitHub account. They can be created here.
- GitHub provides an unlimited number of free public repositories to each user. Via GitHub Education students can sign up for an extended number of free private GitHub accounts (see here).
- For beginners this quick guide may be useful
What are Git and GitHub?
- Git is a version control system similar to SVN
- GitHub is an online social coding service based on Git
- Combined Git/GitHub: environment for version control and social coding
- Install on Windows, OS X and Linux
- When using it from RStudio, it needs to find the Git executable
Git Basics from Command-Line
Also try interactive git tutorial.
Finding help from command-line
git <command> --help
Initialize a directory as a Git repository
Add specific files to Git repository (staging area)
git add myfile
Add all files recursively
To ignore specific files (e.g. temp files), list them in a
.gitignorefile in your repository’s root directory. Regular expressions are supported. See here for more details.
git add -A :/
After editing file(s) in your repos, record a snapshot of the staging area
git commit -am "some edits"
GitHub Basics from Command-Line
Generate a new remote repository on GitHub online or use hub or GitHub CLI command-line wrappers for this. To avoid errors with the online method, do not initialize the new repository with README, license, or
.gitignorefiles. You can add these files after your project has been pushed to GitHub.
git remote add origin firstname.lastname@example.org:<user_name>/<repos_name>.git
Push updates to remote. Next time one can just use
git push -u origin master
Clone existing remote repository
git clone email@example.com:<user_name>/<repos_name>.git
Before working on project, update local git repos
Make changes and recommit local to remote
git commit -am "some edits"; git push -u origin master
Note, in order to work with private GitHub repositories, users need to activate in their GitHub account under
as authentication method either a personal access token or an ssh key. The latter ssh key method is usually preferred. Instructions are given in the corresponding links of the previous sentence.
To commit to a private GitHub repository from the HPCC cluster, you need to generate an ssh key from your home account using the standard Linux
ssh-keygen method as described here, and then upload the
newly generated public ssh key of your HPCC account located under
~/.ssh/id_rsa.pub to GitHub.
Run the following git/github excercise from the command-line. Do this after creating a GitHub repos according to the instructions above or online as outlined here.
git clone firstname.lastname@example.org:<user or org>/<repo name> cd <repo name> git pull touch test # Creates empty file for testing git add test # or use '-A' for all git commit -am "some edits" git push ##-> Edit test file online and then run `git pull` to inspect changes
Online file upload
Useful for new users who want to upload their homework assignments to GitHub but are not familiar enough with the command-line yet.
Add filebutton on your repository, and then
- Under the file path window add required subdirectory structure and a dummy file name (e.g.
- After this press
Upload filesand upload any file (e.g. homework) to the newly create directory. After this the initial dummy file can be deleted. The latter is necessary since empty directories are not visible on GitHub.
Using GitHub from RStudio
After installing Git (see here), set path to Git executable in Rstudio:
If needed, log in to GitHub account and create repository. Use option
Initialize this repository with a README.
Clone repository by copying & pasting URL from repository into RStudio’s ‘Clone Git Repository’ window:
Now do some work (e.g. add an R script), commit and push changes as follows:
Check files in staging area and press
To commit changes to GitHub, press
Shortcuts to automate above routines are here
To resolve password issues, follow instructions here.