In all programming assignments, you must:
1. First push your code to your GitHub repository (i.e.
1. Then complete a small form on our web-server that will ask you for the full SHA of the commit to GitHub.
Your code must be pushed to Github AND your SHA submitted on our website BEFORE the deadline. The image below shows how to copy your SHA to the clipboard. Note that we need your full SHA and not the 7-10 digit digest. The SHA should be 30-40 digits. Once that is done you do not need to actively upload or send us any code. We will pull the repository state indicated by the SHA you submitted and grade it at a later date.
Step 1. Preparing Your Code for Submission
After concluding work on your assignment, you are to take a moment and make sure that your repository is in a good state for submission. This is a three step process and you are to follow all these steps unless otherwise noted in the assignment write-up, corresponding rubric or explicitly instructed by the professors:
Make your code is grading friendly:
- Create a
README.mdin the directory for each assignment indicating any notes you want us to know
- Ensure you have completed, added, and committed your Design Document.
- Suppress all debug messages (remove any
printfstatements or other debug output)
- All assignment files are added and committed to Github
- Make sure your code compiles with no warnings and no errors
Step 2. Push your commits to GitHub
After you've verified that your assignment is ready to be submitted, push your code. Run a
git status on your repository and make sure that there are no files listed as:
- Changes to be committed or
- Changes not staged for commit
Step 3. Verifying Your Submission Before the Deadline
Before the deadline and after pushing your submission to GitHub, you must ( MUST ) clone your code in a separate directory (i.e. new location) as detailed at the end of every assignment page.
In that separate deirectory, compile, run and test your code using the instructions you wrote in your
README.md file to ensure it works as expected.
No special action is needed for late assignments (if you have grace days). If you have grace days, simply push your code to Github and the SHA via our website.
Q1. How do I Checkout A Specific Commit
In the case you want to checkout a specific version of your code, such as the commit used in grading your first assignment, You first need to locate the SHA of that commit. To checkout commit
d8da410b19cf0a9f5a3003120204a114b8496942 from ttrojan's restaurant repository:
cd git clone firstname.lastname@example.org:usc-csci350-summer2017/hw-ttrojan.git test_assignment cd test_assignment git checkout d8da410b19cf0a9f5a3003120204a114b8496942
Notice that by checking out a specific commit, you "detach" yourself from the master branch. When you're done verifying the commit, you should point HEAD back to master. You should never work in a 'detached HEAD' state.
# reset the changes we've made during the 'detached HEAD' state git stash # point HEAD back to master git checkout master