# Collaboration via GitHub

The main goal of this module is to become comfortable with branches, merge conflicts, and pull requests, so that you can and feel comfortable working together with other developers using GitHub.

| Week | Topic                                                                                                                                           | Preparation                                                                                                                                                | Session Plan                                                                                                                                                 | Assignment                                                                                                                                               |
| ---- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1.   | [Advanced Git](https://program.hackyourfuture.dk/~/revisions/rMM91C8UFbw9ic3maCrL/course-content/shared-modules/collaboration-via-github/week1) | [Preparation](https://program.hackyourfuture.dk/~/revisions/rMM91C8UFbw9ic3maCrL/course-content/shared-modules/collaboration-via-github/week1/preparation) | [Session Plan](https://program.hackyourfuture.dk/~/revisions/rMM91C8UFbw9ic3maCrL/course-content/shared-modules/collaboration-via-github/week1/session-plan) | [Assignment](https://program.hackyourfuture.dk/~/revisions/rMM91C8UFbw9ic3maCrL/course-content/shared-modules/collaboration-via-github/week1/assignment) |

## Module Learning Goals

By the end of this module, you will be able to:

* [ ] How to write a good commit message and submit easy to understand PRs
* [ ] Understand why we use branches and the different types
* [ ] Practice using branches and handling changes between local and remote
* [ ] Understand what a merge conflict is and how to resolve them
* [ ] How to save temporary changes without committing them (ie. git stash)
* [ ] How to "remove" commits using reset (soft vs hard), revert, cherry-pick and rebase
* [ ] Be prepared to collaborate successfully using GitHub on your final project
