Introduction to Version Control with Git (GIT111)
Course Length: 1 day
Delivery Methods:
Available as private class only
Course Overview
This one-day Introduction to Version Control with Git training class teaches developers what Git is and how to use Git to manage software versions effectively.
The course begins with a review of the benefits of version control in software development. We then introduce Git, with emphasis on the multiple workflow possibilities, and the paradigm shift required to use distributed version control effectively.
The audience for this course is software developers.
Course Benefits
- Learn how to use Git for efficiently managing version control in software development.
- Learn the importance of version control.
- Learn the purpose of Git.
- Learn how to work with Git and manage workflows.
- Learn how to work with history in workflows.
- Learn advanced techniques.
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
- Summary
- 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
- Summary
- Basic Git Operations
- Using Git
- Definitions
- Commit
- 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
- Summary
- 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
- Summary
- Git Work Flows
- Work Flows
- Local Work Flow
- Feature Branches
- Centralized Workflow
- Integration Manager Work Flow
- Other Work Flows Are Possible
- Summary
- Introduction to GitFlow
- What is GitFlow
- Benefits
- How GitFlow works?
- GitFlow Extension
- Initializing GitFlow
- Features
- Release
- Hotfixes
- Summary
- Rewriting History
- Rewriting History
- Squashing Commits
- Rebase vs Merge
- Amending Commits
- Reset
- Summary
- Examining History
- Looking at History
- Log
- Blame
- Bisect
- Summary
- 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
- Conclusion
- Configuring Git
- Advanced Configuration
- Advanced Configuration Variables
- Environment Variables
- Aliases
- Git Hooks
- Summary
- Lab Exercises
- Lab 1. Starting Out with Git
- Lab 2. Branching, Merging and Working with Remotes
- Lab 3. Experimenting with Workflows
- Lab 4. Using the GitFlow Workflow
- Lab 5. Rebasing and Rewriting History
- Lab 6. Git Submodules
- Lab 7. (Optional) GitFlow Workflow With the GitFlow Extensions
Class Materials
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
Class Prerequisites
Experience in the following is required for this Git class:
- Basic computer (Windows or Mac or Linux) literacy.
Live Private Class
- Private Class for your Team
- Live training
- Online or On-location
- Customizable
- Expert Instructors