https://github.com/t4d-gmbh/using-git-in-academia
https://github.com/t4d-gmbh/using-git-in-academia
academia git github gitlab science-research
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/t4d-gmbh/using-git-in-academia
- Owner: t4d-gmbh
- License: gpl-3.0
- Created: 2024-08-28T14:12:34.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-10-25T14:09:15.000Z (7 months ago)
- Last Synced: 2024-10-28T04:34:39.489Z (7 months ago)
- Topics: academia, git, github, gitlab, science-research
- Language: Python
- Homepage: https://t4d-gmbh.github.io/using-git-in-academia/
- Size: 119 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Using Git in Academia
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!_
---
## Content
### 1. Part: [Working with git](https://github.com/t4d-gmbh/working-with-git)
#### Introduction to git
- Know the basic building blocks of Git (Commits, Branches, Tags) and their relation
- High-level understanding of how commits build up a history#### The basic workflow with git
- 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#### Some useful commands
- Know some commands beyond commit/pull/push and specific command options that facilitate the integration of git into the personal workflow#### Collaboration with git
- 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#### A word on versioning
- Grasp the difference between tags and commits and how tags facilitate navigation in the history of a repository
- become acquainted with the [semver](semver.org) versioning standard and how versioning relates to tags.#### Examples and learning by doing
- Resolve some issues (merge conflicts, etc.) on your own with the [Weekend Out](https://github.com/t4d-gmbh/Weekend-Out) project_That would be the end of part 1_
---
### 2. Part: [Git and its Remotes](https://github.com/t4d-gmbh/git-and-its-remotes)
#### Git features vs remote services
- Be able to tell what features and tools belong to git and what belong to remote services#### Most popular remotes
- 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).#### Organizing projects and more
- 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)#### Project management with remotes
- Know the elementary building blocks for project management
- Understand how these building blocks integrate into a "feature branch" development approach introduced in part 1#### Contributing to OpenSource projects
- Become acquainted with the standard workflow for contributions to pubic GitHub/GitLab projects#### Examples and learning by doing
- 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](https://github.com/t4d-gmbh/ci-cd-workflows)
#### Why remotes offer automation
- 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#### Basic structure of an automation workflow
- Become familiar with the principal elements that define a workflow and how workflows are defined on GitHub and GitLab#### About runners
- 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#### How to integrate automation in a project
- 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#### Examples and learning by doing
- Create your own workflow to render and publish a LaTeX document---
### 4. Part: [Git and Science](https://github.com/t4d-gmbh/git-and-science)
#### Versioning as basis for reproducibility
- Embrace how the commit based git history allows to recreate specific states and configurations
- Apprehend the gap between versioning and reproducibility#### git LFS
- Learn to version data and larger (binary) files with git#### git submodules
- Become familiar with the approach to recreate environments with multiple git repositories#### Remotes project management tools
- See how project management tools can facilitate to adhere to best practices and scientific integrity#### CI/CD for reproducibility
- 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#### Examples and learning by doing
- Complete, use and verify the reproducibility of an exemplary analysis automated with workflows## Contributing 🤝🎉
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](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! 🌟