Commit 9dd388eb authored by Vojtěch Trefný's avatar Vojtěch Trefný
Browse files

Merge branch 'main_syllabus-update' into 'main'

README: Syllabus update

See merge request !85
parents b02d5b9b dc00d10f
Loading
Loading
Loading
Loading
+50 −46
Original line number Diff line number Diff line
@@ -169,10 +169,10 @@ Create a meaningful PR to any open-source project approved by the teacher (imple
* Fork this repository
* Upload SSH keys to your account

## Sylabus
## Syllabus
**To be updated / confirmed**

* Introduction of this course, organization, motivation, intro to VCS and git
* **Week 1:** Introduction of this course, organization, motivation, intro to VCS and git
  * How did developers manage code before version control and why was it bad?
  * Definition of version control and what can you do with it.
  * Introduction to git.
@@ -180,33 +180,37 @@ Create a meaningful PR to any open-source project approved by the teacher (imple
  * The basics of Git Workflow and how to start with git
  * The most essential functionality: Cloning Repositories.
  * Basics of git: index, working tree, local repository, remote repository, configuration of git repositories, securing repositories with SSH keys.
* How does branching work in git
* **Week 2:** How does branching work in git
  * Art of commits.
  * Best practices for branching.
  * Git tags: why types there, how to use them and what’s their use case?
  * Stash: put your current work on a shelf and restore it later.
  * Moving and merging code: what to do when someone wants to contribute, how to accept it.
* Fixing mistakes
  * How to revert a change?
  * Look into history what has changed, audit changes done in a repository.
  * Who has changed this file and why and when?
  * Resolving conflicts between changes.
  * The holy grail of git: interactive rebase. You *need to* understand this.
  * Different ways to find and undo changes made to a Git project and when to use them.
* Working as a team with a git repository
* **Week 3:** Working as a team with a git repository
  * Deep dive into remotes. What’s upstream and a fork?
  * How to work with multiple remote repositories?
  * Moving changes between remote repositories: push, pull and fetch
  * How can I check out someone else’s changes locally?
  * The golden rule of push.
  * Tracking remote repositories.
* Git Etiquette
* **Weeks 4 and 5:** Fixing mistakes
  * How to revert a change?
  * Look into history what has changed, audit changes done in a repository.
  * Who has changed this file and why and when?
  * Resolving conflicts between changes.
  * The holy grail of git: interactive rebase. You *need to* understand this.
  * Different ways to find and undo changes made to a Git project and when to use them.
* **Week 6:** Git forges, automation and CI/CD
  * Git forges in general: GitHub, GitLab and other services.
  * CI/CD: pipelines, tests, build, delivery & deployment.
  * GitHub actions and GitHub marketplace applications.
  * GitLab CI.
* **Week 7:** Git Etiquette
  * How to write a good commit message?
  * Best practices for contributing to open source projects.
  * How to submit a pull request?
  * How to review a pull request?
  * You need to know how to use force-push properly.
* Git features and common open source git workflows
  * How to create an issue in an open source project?
  * Git interfaces and integrations
* **Week 8:**
  * Advanced topis: submodules/subtrees, commit hooks, reflogs...
  * More content based on students' feedback