A seminar for the casual git user...
If you find this course useful, please share it with others! Show your support by giving it a π using the β-button at the top right of the page.
By starring the repository, you help increase its visibility, making it easier for others to π discover and π©βπ learn how to use Git and its remote services with confidence!
1. Part: Working with git
- Know the basic building blocks of Git (Commits, Branches, Tags) and their relation
- High-level understanding of how commits build up a history
- Relate git operations (pull, push, etc.) to the typical workflow when developing a project
- Understand how local changes integrate into the remote version and vice-versa
- Know some commands beyond commit/pull/push and specific command options that facilitate the integration of git into the personal workflow
- Become familiar with the idea of maintaining a healthy reference and how it benefits collaboration
- Understand how git operations and use patterns are designed to facilitate the maintenance of a healthy reference
- Learn some best practices that facilitate the maintenance of a healthy branch and thus collaboration
- Get acquainted with the "feature branch" workflow - A simple collaboration approach suitable for most cases
- Recognise the benefits of using git even when working alone in a project
- Grasp the difference between tags and commits and how tags facilitate navigation in the history of a repository
- become acquainted with the semver versioning standard and how versioning relates to tags.
- Resolve some issues (merge conflicts, etc.) on your own with the Weekend Out project
That would be the end of part 1
2. Part: Git and its Remotes
- Be able to tell what features and tools belong to git and what belong to remote services
- Come to know the most popular remote services (GitLab, GitHub, ...)
- Learn what remote services are used at the university and what are good approaches to set up a collaborative project (for internal and external collaborations).
- Discover how remote services can be used to organize collaboration across repositories
- Basic understanding of GitHub's organisational structure (user, organizations, teams, projects, ...)
- Basic understanding of GitLab's organisational structure ([sub-]groups)
- Know the elementary building blocks for project management
- Understand how these building blocks integrate into a "feature branch" development approach introduced in part 1
- Become acquainted with the standard workflow for contributions to pubic GitHub/GitLab projects
- Step through a "feature branch" development cycle by means of the project management tolls provided by the remote services
- Identify and resolve some conflicts directly on the remote service
3. Part: CI/CD Workflows
- Get an idea about the vast application possibilities of automation
- Discover use cases of automation for non-software developer
- Develop an idea how automation can help to maintain a healthy reference, facilitate collaboration and reduce errors
- Become familiar with the principal elements that define a workflow and how workflows are defined on GitHub and GitLab
- Understand the purpose of runners and how they interact with remote services
- Become aware of the security implications the usage of runners might entail
- Learn about the possibility to setup and use dedicated runners
- Understand how runners can be used to create reproducible environments
- Get familiarized with how automation workflows are triggered
- Learn how automated workflows integrate with project management tools
- Be able to safely use sensitive information (credentials, etc.) in an automation workflow
- Create your own workflow to render and publish a LaTeX document
4. Part: Git and Science
- Embrace how the commit based git history allows to recreate specific states and configurations
- Apprehend the gap between versioning and reproducibility
- Learn to version data and larger (binary) files with git
- Become familiar with the approach to recreate environments with multiple git repositories
- See how project management tools can facilitate to adhere to best practices and scientific integrity
- Be able to configure runners with completely reproducible environments
- Get familiar with conducting an analysis or simulation via an automation workflow
- Appreciate how automation workflows can bride the gap between versioning and reproducibility
- Complete, use and verify the reproducibility of an exemplary analysis automated with workflows
We welcome contributions to this project! Whether you're fixing bugs π or typos, adding new features β¨, or improving readability π, your help is greatly appreciated!
Before you start, please take a moment to read our CONTRIBUTING.md file. It contains some details and guidelines π on how to structure new content and best practices to help you get started and ensure that your contributions aligned with the project's goals. π
Thank you for considering contributing to this course! You're awesome! π