WA2410
Introduction to Version Control with Git Training
This Git course teaches you how to navigate version control like a pro. From core concepts like branching and merging to advanced techniques like rewriting history and managing submodules, you'll thoroughly understand Git's capabilities.
Course Details
Duration
1 day
Objectives
- Understand version control and understand its benefits, explore DVCS vs. centralized systems, and learn how Git works
- Master Git's essential commands for repositories, changes, commits, and history
- Optimize Git setup and leverage GPG
- Use branching and merging for collaborative development
- Rewrite history with squashing/rebasing, amend commits, use Git reset, and troubleshoot with Git bisect
- Master submodules and subtrees
Prerequisites
Basic computer (Windows or Mac or Linux) literacy
Target Audience
Software developers
Course Outline
- Introduction to Version Control
- What is Version Control
- "Undo" Capability
- Collaboration
- Communication and Sharing
- Auditing and Tracking
- Release Engineering, Maintenance, SDLC
- Diagnostics
- History of Version Control
- Distributed Version Control
- Introduction to Git
- What is Git
- Git's Design Goals
- Branching and Merging
- Centralized Version Control
- Distributed Version Control
- Git Basics
- Getting Git
- Git on the Server
- Git Repository Managers
- Git on Somebody Else's Server
- Basic Git Operations
- Using Git
- Definitions
- Commit
- Commit (continued)
- How to Think About Commits
- Viewing History
- Configuring Git
- Configuration Scope
- User Identification
- GPG Signing
- Gnu Privacy Guard
- GPG Basics
- GPG and Git
- .gitignore
- Other Useful Configurations
- Branching, Merging and Remotes
- Branching
- Branches in Git
- Merge
- Fast Forward Merge
- --no-ff
- More Than One Repository
- Working with Remotes
- Fetch and Pull
- Push
- Pull Requests
- Tagging a Commit
- Lightweight Tags
- Annotated Tags
- Sharing Tags
- Checking Out a Tag
- Git Work Flows
- Work Flows
- Local Work Flow
- Feature Branches
- Centralized Workflow
- Integration Manager Work Flow
- Other Work Flows Are Possible
- Introduction to GitFlow
- What is GitFlow
- Benefits
- How GitFlow works?
- GitFlow Extension
- Initializing GitFlow
- Features
- Release
- Hotfixes
- Rewriting History
- Rewriting History
- Squashing Commits
- Rebase vs Merge
- Amending Commits
- Reset
- Chapter 8. Examining History
- Looking at History
- Log
- Blame
- Bisect
- Submodules and Subtrees
- Submodules
- Dependency Management
- Git Submodules
- Adding a Submodule
- .gitmodules
- Cloning a Repository with Submodules
- Updating Submodules (Initial)
- Updating Submodules (Ongoing)
- Subtrees
- Subtrees – How They Work
- Subtrees
- Configuring Git
- Advanced Configuration
- Advanced Configuration Variables
- Environment Variables
- Aliases
- Git Hooks
- Lab Exercises
- Lab 1. Starting Out With Git
- Lab 2. Branching, Merging and Working with Remotes
- Lab 3. Experimenting with WorkflowsLab 4. Using the GitFlow Workflow
- Lab 5. Rebasing and Rewriting History
- Lab 6. Git Submodules
- Lab 7. (Optional) GitFlow Workflow With the GitFlow Extensions