Skip to main content
Back to top
Ctrl
+
K
GitHub Discussion
Pages
About
About this Seminar
1. Schedule
2. Requirements
3. Presenters
Working with Git
1.
- A Brief Introduction
1.1. What is
?
1.2. Main Features
1.2.1. Tracking Techniques
1.2.2. Tracking Features
1.2.3. Content Distribution
1.2.4. Distribution Techniques
1.2.5. Distribution Features
1.2.6. Managing Changes - Within
1.2.7. Managing Changes - Between
1.2.8.
’s Change Management Features
1.3. Limitations
1.3.1. Automatic Synchronization
1.3.2. Functional Consistency
1.3.3. Variety of Trackable Files
2.
- Basic Elements
2.1.
Commits
2.2.
Branches
2.3.
Tags
2.4.
HEAD
2.5.
Index/Staging Area
2.6.
Working Directory
2.7.
History
3.
- Writing History
3.1. A Simple Example
4.
- Elementary commands
4.1.
clone
4.2.
fetch
4.3.
merge
4.4.
rebase
4.5.
add
4.6.
commit
4.7.
push
4.8.
pull
5. The Update Cycle
5.1. step 0.1/0
5.2. step 0.2/0
5.3. step 0.3/0
5.4. step 1/0
5.5. step 2/0
5.6. step 2.3/0.1
5.7. step 3/0.2
5.8. step 3/0.3 -
merge
5.9. step 3/1 -
merge
5.10. step 3/0.3 -
rebase
5.11. step 3/1 -
rebase
6. Collaboration Principles
6.1. Healthy Reference
6.1.1. Best Practice (1/4)
6.2. Separate Changes
6.2.1. Best Practice (2/4)
6.3. Meaningful Steps
6.3.1. Best Practice (3/4)
6.4. Flag States
6.4.1. Best Practice (4/4)
7. ✨Feature✨ Branch Approach
7.1. Idea
7.2. Benefits
7.3. How It Works
8. Versioning
8.1. Semantic Versioning
8.2. Benefits
9. Useful Commands
9.1.
git status
9.2.
git log
9.3.
git reflog
9.4.
git rebase -i
9.5.
git stash
9.6.
git cherry-pick
10. Exercise
Git and its Remotes
1.
Remote Services
1.1. Non-Exhaustive Overview of
Hosting Services
2. Popular Remotes
2.1. Remote Services Overview
2.2. GitHub
2.3. GitLab
2.4. I-MATH GitLab Server
2.5. UZH GitLab Server
2.6. UZH GitHub
3. Remote Features
3.1. Universal Features
3.2. Web Interface
3.3. Collaboration Tools
3.3.1.
Issues
3.3.2.
Merge/Pull Requests
3.3.3.
Milestones
3.3.4.
Labels
3.3.5. Activity Tracking
3.3.5.1. News Feed ⚡
History
3.3.6. A Note on Collaboration
3.4. Access Control
3.5. Continuous Integration & Continuous Deployment (CI/CD)
4. Project Management
4.1.
+ Remote Tools Interactions
4.2. Feature Branch Approach -
reloaded
4.2.1. Workflow
5. Organizing Projects
5.1. Challenges Research Groupy May Encounter
5.2.
GitHub
’s Organization Structure
5.2.1. Key Elements
5.2.2. Setting up a GitHub Organization
5.3.
GitLab
’s Organization Structure
5.3.1. Key Elements
5.3.2. Setting up an Organization
5.4. Differences Between GitHub and GitLab
6. Contributing to 🔓 Open Source Repositories
6.1. Step-by-Step
7. Further Topics Not Covered
8. Exercise
8.1. Weekend out on GitHub - Part 2
CI/CD Workflows
1. Why 🤖 Automation?
1.1. Harnessing the Power of Automation in
GitLab
,
GitHub
, and Similar Platforms
1.2. The Benefits of Automation for Non-Software Developers
1.3. Navigating the Challenges of Automation
1.4. How Automation Helps
1.4.1. Healthy Reference
1.4.2. Collaboration
1.4.3. Increased Quality
1.4.4. Transparency
1.4.5. Reproducibility
2. Creating CI/CD Scripts
2.1. A YAML Primer
2.1.1. What is YAML?
2.1.2. YAML Syntax
2.1.3. Conclusion
2.2. Understanding Variable Substitution
2.3. From YAML to Automation
2.4.
GitHub
Workflows
2.4.1. How to Handle Automation Scripts
2.4.2. Minimal Content of an Automation Script
2.4.3. Minimal Automation Script
2.4.4. How to Trigger an Automation Script
2.4.5. How to Define Variables for an Automation Script
2.4.6. Some Advanced Features
2.5.
GitLab
Pipelines
2.5.1. How to Handle Automation Scripts
2.5.2. Minimal Content of an Automation Script
2.5.3. Minimal Automation Script
2.5.4. How to Trigger an Automation Script
2.5.5. How to Define Variables for an Automation Script
2.5.6. Some Advanced Features
2.6.
Workflows vs.
Pipelines - Overview
2.7.
Workflows vs.
Pipelines - by Example
3.
Runners
3.1. What Are Runners in CI/CD?
3.2. Types of Runners
3.3. Configuring Runners
3.4. Communication with Remote Service
4. 🤗 Embrace automation 🤗
4.1. Recap
4.2. Feature Branch Approach - with Automation
4.3. Some considerations
4.3.1. Start Small!
4.3.2. Create your own Docker images
4.3.3. Debugging CI/CD Pipelines/Workflows
5. Exercise
5.1. LaTeX Article CI/CD Pipeline
Git and Science
1.
in Science
1.1. A Historical
Perspective
2. Project Management Tools
2.1. Key Features and Benefits 1/2
2.2. Key Features and Benefits 2/2
2.3. Advanced
&
Features for Project Management
2.4. Example: Paper Review on
or
3.
Large File Storage (LFS)
3.1. Why Use
LFS?
3.2.
vs.
LFS: A Comparison
3.3.
Data Model
3.3.1. How does
Track Files?
3.3.2. How
LFS Tracks Large Files
3.4. How to use
LFS
3.5.
LFS Availability at UZH
4.
Submodules
4.1. What are
Submodules
?
4.2. Features of
Submodules
4.3. Benefits of
Submodules
for Reproducibility
4.4. Use Cases for Submodules
4.5. Essential Commands for
Submodules
4.6. Working with
Submodules
4.7. Gotchas for
Submodules
4.8. Handling Submodules in CI/CD Pipelines
4.8.1.
GitHub Workflow Example: Handling Submodules
4.8.2.
Pipeline: Handling Submodules
5. Versioning ⚡️Reproducibility
5.1.
and Scientific Reproducibility
5.2. Reproducibility
5.3. What’s Missing?
5.4. Where
and its Remote Services Can Help
5.4.1. Documentation
5.4.2. Data Availability
5.4.3. Configuration Settings
5.4.4. Dependencies
5.4.5. Transitive Dependencies
5.4.6. Workflow Documentation
5.4.7. Execution Environment
5.5. How
Can Enhance Reproducibility
5.6.
Can Do More!
5.7. … and More!
5.8. How Remote Services Can Enhance Reproducibility
5.9. Bringing It All Together: Enhancing Reproducibility
6. Exercise
Index