Course Overview
TOPThis course provides a deep dive into Git and GitLab, a version control repository management system.
Scheduled Classes
TOPOutline
TOPIntroduction to Source Code Management
- The core principles of change management
- Undo changes
- Audit trails and investigations
- Reproducible software
- Changing code-hosting platform
- Moving from another version control system
Git and GitLab Introduction
- Introduction to Git
- GitFlow
- GitLab Flow
- Trees and commits
- Configuring Git
- Adding, renaming, and removing files
Reviewing and Editing the Commit History
- Reviewing the commit history
- Revision shortcuts
- Fixing mistakes
Improving Your Daily Workflow
- Simplifying common commands with aliases
- Ignoring Build Artifacts
- Saving changes for later use (Stashing)
Branching
- Branching
- Listing differences between branches
- Visualizing branches
- Deleting branches
- Tagging
Merging
- Merging Basics
- Merge conflicts
- Merging remote branches
Remote Repositories
- Remote repositories
- Synchronizing objects with remotes
- Tracking branches
Centralizing and Controlling Access
- Introduction to GitLab
- Git repositories on GitLab
- Daily workflow
Reviewing Branching and Merging
- Branch review
- Merging basics
Rebasing
- Rebasing basics
- Rebasing with local branches
- Rebasing with remote branches
- Interactive rebasing
- Squashing commits
- Getting out of trouble
Git as a Debugging Tool
- Using the blame command to see file history
- Performing a binary search
Continuous Integration / Continuous Design (CI/CD)
- How to install GitLab Runner
- Adding to our example project
- Breaking down .gitlab-ci.yml
- Adding .gitlab-ci.yml to our example project
- Deconstructing an advanced .gitlab-ci.yml file
- GitLab CI/CD web UI
* Optional Day Three Topics - The following topics can be added to your private group training events.
Resetting Trees*
- Introduction to resetting
- Resetting branch pointers
- Resetting branches and the index
- Resetting the working directory
- Making good use of the reset command
Improving Your Daily Workflow*
- Interactively Staging Changes
Including External Repositories*
- Submodules
- Subtrees
- Choosing between submodules and subtrees
Workflow Management*
- Branch management
Prerequisites
TOPBefore attending this course, you should have:
- Basic understanding of application development principles
- Basic Linux skills
- Familiarity with command-line options such as ls, cd, cp, and su
Who Should Attend
TOPDeveloper