Step 1. (Dev 1, Dev 2) Elliot Rockababy, founder and lead developer of Rockababy-Kroppenduckel, has just sent you an email. "I have a bunch of files for our new site," it reads. "I need u and ur dev partner to clone my repo and get to work." Despite Mr. Rockababy's poor grammar, he believes in dev accountability. The name of the repo is Git-Er-Dun and he has conveniently sent you a link: https://github.com/FlamboyantRockababy/Git-Er-Dun.git
From here, you will using the Rockababy-Kroppenduckel Industries (RKI) Organization to push and pull the repo.
Step 2. (Dev 1 & Dev 2) After the project is on your local machine, take a quick look at all three files. Mr. Rockababy has instructed you to proceed with the instructions in the JavaScript file; there is an important note from company co-founder Pamela Kroppenduckel.
Step 2.5 He also wants one of you to rename the repo you're working on to something more appropriate. Pick somebody to rename the project xx_ThrowbackParty
where xx is the first initial from you and your partner's first name (for example, if your name is Sam and your partner's name is Commando, it would be SC_ThrowbackParty
).
Step 3. (Dev 1) While on vacation attempting to traverse K2, the usually-effervescent and thoroughly old-school Pamela Kroppenduckel snuck into the lady's room to check her Blackberry. "Thank ye gods!" she exclaimed while moisturizing her weathered hands. "That blasted JavaScript file has finally been removed." But while questioning the meaning of life, she notices there is no tag on the project. As the Swedish proverb goes, "No tag, no paycheck." Tag the project to reflect that it is Version 1.0.0 and assuage Ms. Kroppenduckel's worst nightmare ASAP.
Step 4. (Dev 2) Man, is anybody in charge around here? There's been some serious weirdness going on and you need to get up to speed, but you've been getting mixed messages from both Rockababy and Kroppenduckel. Worse, Dev 1's internet connection keeps flaking out. Find something to do, Git wise, that might help you paint a better picture of what changes have been made official since starting this project. The more details, the better -- this might be a while.
Step 5. (Dev 1 & Dev 2) "DEVS!" Mr. Rockababy cries in another email with renewed vigor (and certainly vim -- he's an old-school Linux guy, after all). "I'm schvitzing with astonishment over here. Great job with the tweaks, but the site needs something...fresh. Dev 1, give me a new background color for the body. I want the color to be cornflowerblue, in fact. And Dev 2! I need to see some h1 header action instead of h2. h2 is very 1999! We don't want to be behind the curve with this." Satisfy your boss' pleas by completing his design requirements.
Step 6. (Dev 1) You're feeling deviant, quickly toying around with the background color of the web site's body in the CSS file. You change it to a gorgeous coral color and might even want to show the boss, but creating extra files with arbitrary changes without approval is a BIG no-no. You decide to eat
a pizza and think about it. Stash the change so you can come back in a few with a decision, while maintaining a clean working directory as you review the index.html
file for grammatical errors.
Step 7. (Dev 2) It's probably paranoia, but after the Internet outage and Pamela's spastic plaints, something is telling you the entire web might self-implode today, resulting in one big fat fragmentation. Just in case, make a .zip file of this repository for safekeeping on your hard drive (this practice has been OK'd by the company per their policy). Remove the .zip file if and when the internet lives another day (i.e. as the last step of this exercise).
Step 8. (Dev 1) You win some, you lose some. The pizza was awesome, but after carb-bombing and evening out your blood sugar levels, you've come to your senses about this coral idea. It's got to go, and nobody needs to know about your fantasy. Remove the stash entry you had such high hopes for.
Step 9 (Dev 1 & Dev 2) Make sure everything on the master branch is cleaned up. For example, are there corrupted objects? Are there some objects that are no longer pointed to by any object in any reachable branch? Clean those up if so.
Step 10. (Dev 1 & Dev 2) The changes are all made, and the bosses are happy. Great job! Remember: Driving a project forward requires a myriad of small changes;
understanding each of these individual changes is the key to understanding how the project evolved.
While commands like git status
or the plain git log
command only inform you on a very broad level,
there are other commands that display modifications in detail. Use a Git command to investigate
the differences between your beginning and final project, and congratulate yourself on a job well done!
Note: Files pushed to the repo will be deleted within seven days of their final draft.
-
What were some of the Git commands you used? Could you have substituted any of them for something equally (or perhaps even more) effective?
-
How often did you use Slack to communicate, and how helpful was that communication in completing the project? What are some things you could of done to make your collaboration more efficient?
-
Were there any commands you are still fuzzy on, or had trouble with? Try talking them out with your partner or stop by the RTC Gitter chatroom.
-
If you were one of the bosses, what could you have done differently to make the required changes more streamlined?
-
Do you agree with the company policy that allows employees to create .zip files from repos to store on their personal hard drive? Why or why not?
-
Did your commit messages answer why the change was needed, how the change addressed the issue, and what the side effects of the change are (if any)?