RU beehive logo ITEC dept promo banner
ITEC 325
2021spring
flo

git usage
hw04

Due Mar.01 (Mon) 23:59at start of class; also see part II, below

This assignment gives the class experience in using git, and updating a shared repository. For this assignment, you must use the command-line interface to git, rather than a gui interface (e.g. via github.com's web interface).

  1. Create a github.com account. You can use whatever name you like, but you must make sure that you your github account is also associated with your RU email (@radford.edu).
  2. Locally (on your machine, or on rucs), be sure to configure your name and email, as per git-on-rucs.html; in particular git config --global user.email yourUserName@radford.edu (so that when your local computer makes requests to github.com, it knows whose password it should be asking for).
  3. Once a github account has been created, I will send an invitation granting write-access to the repository freemanbach/itec325 (sent 2021-Feb-22 ).
  4. Locally (on your machine, and/or on rucs), clone this (public) repository:
    git clone https://github.com/freemanbach/itec325.git.

    I suggest doing this somewhere within your H: drive’s dynamic_php/ (mounting your H: drive if on your laptop), so you can view the results via the web. However, that isn’t required (e.g. if your disc quota is low).

    Alternately, you can clone via ssh1 by git clone git@github.com:freemanbach/itec325.git You just need to generate a public/private key pair first (by running ssh-keygen). You'll have the private key stored locally (in ~/.ssh/id_rsa), and you'll give github.com a copy of the public key (http://github.com » your avatar » github Settings » SSH keys » Add). The project itself has a couple files re-going-over these same instructions for creating ssh keys and adding ssh keys to github.

    Debugging: You can test whether your public-key-on-github is working independently of git by testing ssh -T hg@github.com (yes, include the “hg” literally); if it shows “logged in as yourUserName” then your public-key is all set. If it shows “Permission denied (publickey)” (or something else), then you need to double-check that the private-key on your machine corresponds to the public-key you have listed in your github profile » preferences.

  5. Edit facts.txt, along with some two-facts-and-a-lie about yourself. (Note: this file will be public on my github account!)
    Follow the existing format (each fact starts with username, colon, etc.). As always, grammar/spelling counts.
  6. Add a small picture to the project, using git add. Update picts.php so that it includes a clickable thumbnail of that page. (A picture of anything polite, and you must have the right to copy it.)

    Make sure your picts.php works correctly!

  7. Commit your changes to your local repo, with a short (≤ 1 sentence) message saying what you did. You can use “git commit .”, which will cause an editor to launch for you to write the commit-message in. Alternately, you can run “git status .” (to be sure you recall all the files you changed), followed by “git commit -m "your message" .” to commit all changes to the current directory, ..
    Warning: If you commit and get a warning about a conflict, be sure to resolve it before (re)committing. You'll get no credit if you commit something which includes the conflict.
  8. Push your changes back to the public repository.
    Hint: If you get an error about “not authorized” for writing to the repository, it may be because you didn't respond to github.com's invitation link in step 3 above. (The repo is world-readable — so just because you could clone it doesn't mean you also have write permission.)
  9. Note: in the following days, I'll have each person make a change to the file, and then I'll be asking a D2L question based on your classmates' updated version.
  10. Common mistakes:


    Part II

    due 2020.Mar.05 (Fri.) at start of class; only complete this after the the part I deadline above.
    (5pts) Go back to your entry in facts.txt, and:

    You must, of course, push your changes back to the central repo, or else I won't see them!


1 Isn't it odd, that your username is not included in the clone-request? Apparently the ssh crypto-exchange being sent embeds your public key?, which github can look up and see which github-user has that public-key on file (presumably using a hash table).      
2 And to sustain the confusion: you might see a classmate’s old work in your parallel github copy of the repo, just because it was already present at the moment you made your initial clone.      

logo for creative commons by-attribution license
This page licensed CC-BY 4.0 Ian Barland
Page last generated
Please mail any suggestions
(incl. typos, broken links)
to ibarlandradford.edu
Rendered by Racket.