Skip to content

A 4 part series about: 1. How to work with git; 2. Use related remote services like GitHub or GitLab; 3. Getting started with automation; 4. How git can help in scientific projects

License

Notifications You must be signed in to change notification settings

t4d-gmbh/using-git-in-academia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

81 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

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 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 project

That would be the end of part 1


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

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

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 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! 🌟

About

A 4 part series about: 1. How to work with git; 2. Use related remote services like GitHub or GitLab; 3. Getting started with automation; 4. How git can help in scientific projects

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 3

  •  
  •  
  •