MIT 6.S194 | Open Source Software Project Lab  

Become a Git Master

In Class

  1. Version control: the big picture (slides)
  2. Git commands and metaphors (slides)
  3. Exercise Creating a Personal Git Repository
  4. Under the Hood (slides)
  5. Exercise Smashing Git Repositories Into Each Other
  6. Team Workflow, Rebasing, and Good Behavior (Slides)
  7. Working over Github
  8. Exercise Pull Requests and Rebasing
  9. Exercise Adding Custom Hooks

The last exercise is pretty do-it-yourself. If we don't have time in class, hooks are a very cool feature: take the 10 minutes yourself to try it out!

See Also

Geek Cred

hash bang slash bin slash bash

Defined on Everything2 as:

The "accepted" pronunciation of invoking the Bourne Again SHell, or Bash. #!/bin/bash

You used that incantation in the git hooks exercise. In general, when you want a file in a *nix system to be executable, change it's permissions to +x (aka chmod u+x or chmod a+x) and then add a special line at the top that tells the shell how to invoke the necessary interpreter. #! means "run" and the rest of the line is the absolute path to the program that will interpret the rest of the file.

So a bash script traditionally uses hash bang slash bin slash bash or #!/bin/bash, whereas a python script might use #!/usr/bin/python

You can typically find out what the absolute path for a command is by running which CMD (as in, which python)


Class List

  1. Introduction (W 2/6)
  2. Bootup (M 2/11)
  3. Become a Git Master (W 2/13)
  4. Everything you ever wanted to know about Web Requests (T 2/19)
  5. Design Studio (W 2/20)
  6. Debugging (M 2/25)
  7. Design Studio (W 2/27)
  8. Open Source Business Models (M 3/3)
  9. Design Studio (W 3/6)
  10. Work Day (W 3/11)
  11. Design Studio (W 3/13)
  12. Quantifying Code (M 3/18)
  13. Design Studio (W 3/20)
  14. Spring Break (M 3/25 & 27)
  15. Quantifying Users (M 4/1)
  16. Work day (W 4/3)
  17. Remote Collaboration (M 4/8)
  18. Design Studio (W 4/10)
  19. No class - Patriot's Day (M 4/15)
  20. Design Studio (W 4/17)
  21. Work Day (M 4/22)
  22. Design Studio (W 4/24)
  23. No class - CHI (M 4/29 and W 5/1)
  24. Final Presentations (M 5/6)
  25. Final Presentations (W 5/8)
  26. No class - WWW (M 5/13 and W 5/15)
  27. *Note: Report due W 5/15*