Module 2 - Git and GitHub for Version Control¶
This module introduces the princples and practical use of version control, focusing on GitHub. Participants will learn how to track changes in code, collaborate efficiently using GitHub, and integrate version control into their development processes.
Learning Outcome¶
By the end of this module, participants will be able to:
- Understand what is version control
- Setting up GitHub repositories for their software projects
- Collaborate using GitHub (exploring other repos, branching, forking, opening issues, opening pull requests and asking for review)
- Define automations for checks, testing, pre-commits
- Manage repositories efficiently using Git in VSCode
Sections¶
- Quick welcoming to the module (15min)
- Introductio to Version Control (15min)
- What is version control and why developers need it
- Branches and tracked history
- Semantic versioning and tagging
- (Optional) Quiz
- Local Git basics (1h30min)
- Initializing a git project in a local directory
- Useful commands: status, log, branch, checkout
- Best practices for commiting changes
- Adding tags
- The .git history folder
- (Optional) Quiz
- Collaborating in GitHub (1h30min)
- Local vs. remote git repositories
- GitHub structure: repositories, issues, pull requests, forks
- Important configurations: LFS, .gitconfig, settings
- Cloning, pulling, and pushing changes
- Resolving merge conflicts (rebasing)
- Issues management (super- and sub-issues)
- The GitHub workflow
- (Optional) Working in another person's repository
- (Optional) Quiz
- Advanced GitHub usage (1h30min)
- Ignoring files (.gitignore)
- GitHub actions: automating checks
- Automated testing
- Setting up secrets
- Pre-commit hooks
- Continuous Deployment: publishing a GitHub documentation page (MkDocs)
- (Optional) Quiz
Participants' projects¶
After the last session, we will organize an additional 2-hour session for all participants. The objective of this session is to allow participants to work on their projects uninterrupted, in a room with experts and peers, where they can collaboratively address questions and challenges.