Creating and Submitting Assignments with Github
Alert: there is a configuration issue with the git installation on ECN machines, which can make it tricky to clone your repository. Please see the supplemental instructions for a couple of workarounds.

Setting up GitHub

We will be using GitHub Classroom to manage project submissions. Please sign up for a GitHub account at https://www.github.com if you do not already have one. This is the account you will use to create and submit all of your assignments this semester.

Setting up your repository

1. Create a git repo for your project

Click on this link to set up a repository for your project. This is the repository you will use for all of your project submissions.

2. Start an existing group or join your partner's group

If you are working with a partner, you should either set up a new team (if you're the first one to set up the repo) or join your partner's team (if they have already set up the repo).

3. Provide repository details to us

Fill out the Course Questionnaire and provide your Github username(s) and repository details to the instructors. Please do this by Friday, August 25th.

Developing an assignment

1. Clone the repository

Cloning a repository creates a local copy. Change your directory to whichever directory you want to create your local copy in, and type:

> git clone https://github.com/ece468/468project-[github-username] [local-directory-name]

This will create a subdirectory called [local-direcotry-name], where you will work on your code.

2. Periodically commit your changes

As you develop your code, you can commit a local version of your changes (just to make sure that you can back up if you break something) by typing:

> git add [file name that you want to commit]
> git commit -m "[describe your changes]"

To copy your changes back to Github (to make sure they are saved if your computer crashes, or if you want to continue developing your code from another machine), type:

> git push

If you do not push, the teaching staff cannot see your solutions.

Submitting an assignment

Once you have a version of your program that you want to submit, tag the current version of the code with the tag step[X]-submission:

> git tag -a step[X]-submission -m "Submission for [assignment name]"

For example, to submit step 0, you will type: > git tag -a step0-submission -m "Submission for Step 0"

And push it to GitHub:

> git push --tags

If you want to update your submission (and tell the grading system to ignore any previous submissions) type:

> git tag -a -f step[X]-submission -m "Submission for [assignment name]"
> git push --tags

This will overwrite any other tag named "step[X]-submission" with one for the current commit.