This class introduces the basics of managing our code, especially in the presence of
- multiple versions of our codebase, that always exists in any non trivial software, and
- the need of collaborating with others
Specifically, we review the tools and services git and github, that were created to facilitate the "multi-person construction of multi-version software", to use Parnas' terminology.
At the end of the class you should be able to:
- understand and elaborate on the benefits of a versioning and collaboration system
- understand how to use git and github
- understand how to use them "properly" (when it makes sense to commit, when it makes sense to branch, to fork, etc)
- become confident in versioning and experimenting with code and with interacting with others on the same codeabse
- understand some "best practices" for structuring a git project in terms of branching and merging strategies
Very important: you must be able to use git commands from the command line. Otherwise you don't really understand what's happening
Reading material - required for exam
Additional readings and material (optional, for your own benefit)
Checkpoint quiz: https://www.proprofs.com/quiz-school/preview.php?title=seii-prep-git-1su
Practicing with git and github
- Review your familiarity of the concepts with these common exam questions
- The best way to practice is, as usual, to practice. Fork a repository on github, modify it, stage and unstage changes, create branches, etc.
- Practice with some sample exam questions on proprofs.