Skip to content

Version Control & Git

Master Git, GitHub, and GitLab — branching strategies, rebasing, merge conflicts, monorepos, CI/CD pipelines, Git hooks, and team workflows

107 Published

In this tutorial, you will learn about Version Control. We cover key concepts, practical examples, and best practices to help you master this topic.

Comprehensive version control tutorials covering everything from qubits and Superposition to advanced algorithms and real-world applications.

Career & Learning

GitOps Workflows -- Deploy Infrastructure with Git as Source of Truth
Git Certifications Guide -- Grow Your Version Control Career
Git Practice Projects -- Hands-On Exercises for Version Control Mastery
Git Team Workflows -- Collaboration Best Practices for Development Teams
Advanced Git Cheatsheet -- Commands, Tips, and Tricks for Power Users
Git Security Best Practices -- Signed Commits, Audit Trails, and Access Control

Additional Classic Tutorials

Branch -- Explained with Examples
Branching Strategies: Git Flow, GitHub Flow & Trunk-Based Development
Cherry Pick -- Explained with Examples
Code Review Best Practices Guide
Conflict Resolution -- Explained with Examples
Fork -- Explained with Examples
Forking Workflow: Contributing to Open Source Projects
Git -- Explained with Examples
Git Aliases: Speed Up Your Daily Git Commands
Git Archive -- Exporting Projects
Git Basics: Init, Commit, Push & Pull -- Getting Started Guide
Git Bisect: Finding the Commit That Broke Everything
Git Blame & Log Tricks: Investigating Project History
Git Clean & GC: Housekeeping for Your Repository
Git Diff & Patch Files: Sharing Changes Without Remotes
Git for Teams: Workflows, Conventions and Best Practices
Git Hooks: Automate Your Development Workflow
Git Internals -- Objects, Refs & .git
Git LFS: Managing Large Files in Git Repositories
Git Patch Workflow -- Complete Guide
Git Reflog: Recovering Lost Commits and History
Git Reset, Revert & Cherry-Pick Explained with Examples
Git Stash & Worktrees: Managing Multiple Contexts Efficiently
Git Submodules & Subtrees: Managing Dependencies Across Repos
Git Tags, Releases & Semantic Versioning Guide
GitFlow -- Explained with Examples
GitHub Actions: CI/CD Pipelines for Your Repositories
GitHub CLI: Managing Repositories from the Terminal
GitHub Flow -- Explained with Examples
GitHub Issues, Pull Requests & Code Review Best Practices
GitHub Pages: Deploy Sites Directly from Your Repository
GitHub Profile README: Building a Standout Developer Profile
.gitignore: Ignoring Files and Keeping Secrets Safe
GitLab Basics: Repos, Merge Requests & CI Integration
GitLab CI/CD: Pipelines, Runners & Auto DevOps Guide
GitOps Basics -- Declarative Deployments
GPG Signing Git Commits -- Complete Guide
Merge -- Explained with Examples
Resolving Merge Conflicts in Git: Step-by-Step Guide
Merge vs Rebase: When and How to Use Each in Git
Monorepo -- Explained with Examples
Monorepos with Git: Strategies, Tools & Tradeoffs
Working with Multiple Git Remotes: Fork, Mirror & Collaborate
Pull Request -- Explained with Examples
Rebase -- Explained with Examples
SemVer -- Explained with Examples
Signed Commits: GPG & SSH Signing for Git Authentication
Git Sparse Checkout Guide
Git Stash -- Explained with Examples
Git Subtree vs Submodule -- Complete Guide
Trunk-Based Development: Faster Delivery with Less Complexity
What is Git -- Simple Explanation with Examples

Published Topics

Git Basics: Init, Commit, Push & Pull — Getting Started Guide

Learn Git fundamentals including initializing repositories, staging changes, committing, branching, and pushing to remote repositories with practical examples.

✓ Live

Git — Explained with Examples

Git is a distributed version control system that tracks changes to files, enabling collaboration and history management across teams.

✓ Live

Branch — Explained with Examples

Branching creates diverging lines of development, allowing multiple features or fixes to proceed in isolation within the same repository.

✓ Live

Branching Strategies: Git Flow, GitHub Flow & Trunk-Based Development

Learn Git branching strategies including Git Flow, GitHub Flow, and trunk-based development to choose the right workflow for your team and project size.

✓ Live

Merge vs Rebase: When and How to Use Each in Git

Learn the differences between Git merge and rebase, when to use each, best practices for commit history management, and how to avoid common pitfalls.

✓ Live

Merge — Explained with Examples

Merge combines changes from different branches into a single branch, integrating parallel lines of development in a Git repository.

✓ Live

Resolving Merge Conflicts in Git: Step-by-Step Guide

Learn how to resolve Git merge conflicts with practical strategies including command-line tools, merge tools, and best practices for preventing conflicts in team workflows.

✓ Live

Rebase — Explained with Examples

Rebase moves commits from one branch to a new base commit, creating a linear project history by replaying changes on top of another branch.

✓ Live

Git Reset, Revert & Cherry-Pick Explained with Examples

Learn Git operations for undoing changes including reset, revert, and cherry-pick with practical examples showing when and how to use each command safely.

✓ Live

GitFlow — Explained with Examples

GitFlow is a branching model that organizes development with dedicated branches for features, releases, hotfixes, and the main codebase.

✓ Live

Git Stash & Worktrees: Managing Multiple Contexts Efficiently

Learn Git stash and worktree features to manage multiple working contexts simultaneously, switch between tasks without losing progress, and organize parallel work streams.

✓ Live

GitHub Flow — Explained with Examples

GitHub Flow is a lightweight branching strategy where feature branches are proposed via pull requests and merged directly into main.

✓ Live

Git Hooks: Automate Your Development Workflow

Learn Git hooks including pre-commit, pre-push, and commit-msg hooks to automate linting, testing, and code quality checks before commits reach your repository.

✓ Live

GitHub Issues, Pull Requests & Code Review Best Practices

Learn to use GitHub Issues for project management and Pull Requests for code review with templates, labels, review workflows, and automation that improves team collaboration.

✓ Live

SemVer — Explained with Examples

SemVer (Semantic Versioning) is a versioning scheme using MAJOR.MINOR.PATCH numbers to communicate compatibility changes in software releases.

✓ Live

Cherry Pick — Explained with Examples

Cherry pick applies specific commits from one branch to another, allowing selective porting of changes without merging entire branches.

✓ Live

GitHub Actions: CI/CD Pipelines for Your Repositories

Learn GitHub Actions fundamentals including workflow files, triggers, runners, matrix builds, caching, and deploying applications with practical CI/CD pipeline examples.

✓ Live

GitLab CI/CD: Pipelines, Runners & Auto DevOps Guide

Learn GitLab CI/CD including pipeline configuration with YAML, runners, Auto DevOps, environments, and deployment strategies for automated software delivery.

✓ Live

Git Stash — Explained with Examples

Git stash temporarily saves uncommitted changes so you can switch branches without committing unfinished work, then reapplies them later.

✓ Live

Conflict Resolution — Explained with Examples

Conflict resolution handles competing changes from different branches that Git cannot automatically merge, requiring manual intervention to reconcile.

✓ Live

Monorepos with Git: Strategies, Tools & Tradeoffs

Learn monorepo management with Git including code ownership, build tools like Nx and Turborepo, dependency management, and CI strategies for large-scale repositories.

✓ Live

Fork — Explained with Examples

A fork copies a repository to another account, enabling independent development and contributions back via pull requests without affecting the original.

✓ Live

Git Submodules & Subtrees: Managing Dependencies Across Repos

Learn Git submodules and subtrees for managing dependencies across multiple repositories including adding, updating, cloning, and best practices for each approach.

✓ Live

.gitignore: Ignoring Files and Keeping Secrets Safe

Learn to write effective .gitignore files including patterns for common languages, keeping secrets and credentials out of repos, and global gitignore configurations.

✓ Live

Pull Request — Explained with Examples

A pull request proposes changes from one branch to another, enabling code review, discussion, and automated checks before merging.

✓ Live

Git Tags, Releases & Semantic Versioning Guide

Learn Git tags for releases including semantic versioning, annotated vs lightweight tags, signing tags, and integrating with CI/CD for automated release workflows.

✓ Live

Monorepo — Explained with Examples

A monorepo is a single repository containing multiple distinct projects or packages, sharing tooling and versioning under one roof.

✓ Live

Git Bisect: Finding the Commit That Broke Everything

Learn Git bisect for binary search through commit history to identify the exact commit that introduced a bug, with automation and integration into testing workflows.

✓ Live

Git LFS: Managing Large Files in Git Repositories

Learn Git Large File Storage including setup, tracking patterns, bandwidth limits, migration from regular Git, and best practices for binary files, assets, and datasets.

✓ Live

Signed Commits: GPG & SSH Signing for Git Authentication

Learn to sign Git commits with GPG and SSH keys including key generation, configuration, verification, and integration with GitHub and GitLab for verified commit badges.

✓ Live

Git Reflog: Recovering Lost Commits and History

Learn Git reflog to recover lost commits, restore deleted branches, undo rebase mistakes, and understand Git internal reference logging for disaster recovery.

✓ Live

Forking Workflow: Contributing to Open Source Projects

Learn the Git forking workflow for contributing to open source including forking, cloning, syncing forks, creating pull requests, and maintaining your fork long-term.

✓ Live

GitHub Profile README: Building a Standout Developer Profile

Learn to create an impressive GitHub profile README with dynamic content, stats cards, pinned repositories, contribution graphs, and widgets that showcase your work.

✓ Live

What is Git — Simple Explanation with Examples

Git is a distributed version control system that tracks changes in files, enabling multiple developers to collaborate on projects simultaneously.

✓ Live

Git Aliases: Speed Up Your Daily Git Commands

Learn to create Git aliases for your most-used commands including complex operations, shell integration, and sharing alias configurations across teams.

✓ Live

Git Blame & Log Tricks: Investigating Project History

Learn advanced Git log and blame techniques including filtering commits by author, date, and content, formatting output, and tracing code origin through project history.

✓ Live

Working with Multiple Git Remotes: Fork, Mirror & Collaborate

Learn to manage multiple Git remotes including adding, removing, and syncing between remotes for fork maintenance, mirroring, and collaboration across platforms.

✓ Live

Git Diff & Patch Files: Sharing Changes Without Remotes

Learn Git diff and patch files for sharing changes without repository access including creating, applying, and managing patches across different branches and repositories.

✓ Live

Git Clean & GC: Housekeeping for Your Repository

Learn Git housekeeping including git clean for untracked files, git gc for repository optimization, and maintenance routines that keep your repos healthy and fast.

✓ Live

GitHub Pages: Deploy Sites Directly from Your Repository

Learn GitHub Pages including static site deployment, custom domains, Jekyll integration, build configuration, and project pages vs user/organization pages.

✓ Live

Git for Teams: Workflows, Conventions and Best Practices

Learn Git workflows for teams including commit conventions, code review processes, branch naming, pull request templates, and automation for consistent collaboration.

✓ Live

GitHub CLI: Managing Repositories from the Terminal

Learn GitHub CLI (gh) for managing issues, pull requests, repos, actions, and releases directly from the terminal with practical workflows and automation scripts.

✓ Live

GitLab Basics: Repos, Merge Requests & CI Integration

Learn GitLab fundamentals including project setup, merge requests, code review, CI/CD integration, container registry, and GitLab Pages for comprehensive DevOps workflows.

✓ Live

Trunk-Based Development: Faster Delivery with Less Complexity

Learn trunk-based development including short-lived branches, feature flags, continuous integration, and deployment strategies that enable faster delivery with less merge complexity.

✓ Live

Code Review Best Practices Guide

Learn code review best practices including review checklists, effective feedback techniques, automated review tools, and team workflows for productive peer reviews.

✓ Live

Git Archive — Exporting Projects

Learn Git archive for exporting repository snapshots as tar or zip archives, including submodules, prefix paths, and CI/CD usage examples.

✓ Live

Git Sparse Checkout Guide

Learn Git sparse checkout for cloning and working with only specific directories in large repositories, reducing disk usage and checkout time.

✓ Live

Git Internals — Objects, Refs & .git

Explore Git internals including objects (blob, tree, commit, tag), references, the .git directory structure, and how Git stores your data under the hood.

✓ Live

Git Subtree vs Submodule — Complete Guide

Compare Git submodules and subtrees for dependency management including workflow, team friction, clone cost, and when to choose each approach for your project.

✓ Live

Git Patch Workflow — Complete Guide

Learn the Git patch workflow — creating, applying, and managing patch files for sharing changes between repositories without a remote or for code review.

✓ Live

GPG Signing Git Commits — Complete Guide

Learn how to sign Git commits and tags with GPG keys, verify signatures, configure signing workflows, and enforce signed commits in your team.

✓ Live

GitOps Basics — Declarative Deployments

Learn GitOps principles for declarative infrastructure and application deployment using Git as the single source of truth with automated reconciliation.

✓ Live

Git Config Global, Local, and System Scopes -- Full Configuration Guide

Learn to manage Git configuration across system, global, and local scopes including user identity, aliases, core settings, and team project overrides.

✓ Live

Gitattributes -- Manage Line Endings, Diff Drivers, and Merge Strategies

Learn to use .gitattributes for cross-platform line ending normalization, custom diff drivers, binary file handling, and merge strategy patterns for teams.

✓ Live

Git Credential Helpers -- Secure Authentication Storage and Management

Learn to configure Git credential helpers for caching, keychain, and custom authentication storage to avoid repeated password prompts during sessions.

✓ Live

Git Maintenance -- Optimize Repository Health and Performance

Learn to use git maintenance tasks for automatic repository optimization including prefetch, repacking, commit-graph updates, and multi-pack index generation.

✓ Live

Git Garbage Collection -- Repack, Prune, and Optimize Repositories

Learn to use git gc, repack, and prune for cleaning loose objects, compressing pack files, and removing unreachable data for lean repository performance.

✓ Live

Shallow Clone -- Download Partial Git History for Faster Cloning

Learn to use git shallow clone with depth limits to download recent commit history only, reducing clone time for CI/CD and temporary repository access.

✓ Live

Partial Clone and Sparse Checkout -- Work with Large Repositories Efficiently

Learn to use git partial clone with blobless and treeless filters combined with sparse checkout to handle large monorepos without excessive data download.

✓ Live

Git Rerere -- Reuse Recorded Conflict Resolution Automatically

Learn to enable git rerere to record and replay conflict resolutions during rebases and merges, saving time on repeated merge conflict resolution scenarios.

✓ Live

Git Notes -- Attach Metadata and Annotations to Commits

Learn to use git notes to attach metadata to commits without altering history, enabling code review comments, CI status updates, and audit trail annotations.

✓ Live

Git Replace -- Transparently Replace Git Objects Without Rewriting History

Learn to use git replace for transparently fixing past mistakes in commits and patching history locally without force-pushing or rewriting repository branches.

✓ Live

Git Bundle -- Offline Transport and Backup for Git Repositories

Learn to use git bundle for packaging commits into a single file for offline transport, air-gapped environments, email-based collaboration, and backup.

✓ Live

Git Range-Diff -- Compare Two Commit Ranges and Patch Series

Learn to use git range-diff for comparing commit ranges side by side, reviewing rebase results, verifying cherry-pick accuracy, and auditing patch series.

✓ Live

Git Format-Patch -- Create Email-Ready Patch Files for Open Source

Learn to use git format-patch to generate mbox-compatible patch files from commits for email-based contribution workflows in open source development projects.

✓ Live

Git Am -- Apply Patches from Email and MBOX Files Like a Maintainer

Learn to use git am for applying mailed-in patches, handling patch series from format-patch, resolving conflicts during application, and maintaining integrity.

✓ Live

Git Filter-Repo -- Rewrite Repository History Safely and Efficiently

Learn to use git filter-repo for removing sensitive data from history, splitting repositories, and rewriting history with better performance than filter-branch.

✓ Live

Git Fsck -- Verify Repository Integrity and Recover Lost Objects

Learn to use git fsck for checking repository integrity, finding dangling commits, recovering orphaned objects, and diagnosing database corruption issues.

✓ Live

Git Verify-Commit and Verify-Tag -- Cryptographic Trust Verification

Learn to use git verify-commit and verify-tag for checking GPG and SSH signatures on commits and tags to ensure authentic developer contributions and trust.

✓ Live

Git Push Options -- Send Metadata to Server-Side Hooks During Push

Learn to use git push options for passing metadata like CI skip flags and custom review identifiers to server-side hooks without modifying Git commit messages.

✓ Live

Git Request-Pull -- Generate Upstream Pull Request Summaries

Learn to use git request-pull for generating formatted email summaries of branch changes for upstream maintainers to review and merge your contributions.

✓ Live

Git Refspec -- Custom Fetch and Push Mapping for Remote Operations

Learn to use Git refspec syntax for custom fetch and push mappings, selective branch synchronization, and remote reference layouts across repositories.

✓ Live

Migrating from SVN, Mercurial, and Perforce to Git -- Complete Guide

Learn to migrate version control history from SVN, Mercurial, and Perforce to Git using git-svn, hg-fast-export, and p4-fusion preserving full history.

✓ Live

Advanced Git Bisect with Multi-Bisect and Run Script Automation

Learn advanced bisect techniques with run scripts, skip strategies for untestable commits, and visualization for narrowing down bug-introducing commits.

✓ Live

Git Trace2 -- Performance Tracing and Debugging Git Operations

Learn to use Git Trace2 for instrumenting performance, tracing slow operations, and debugging fetch, merge, and checkout bottlenecks in Git repositories.

✓ Live

Advanced SSH Configuration for Git Remote Operations

Learn to configure SSH for Git with multiple keys, host aliases, jump hosts, and agent forwarding for secure remote repository access across projects.

✓ Live

Custom Git Diff and Merge Tools -- Configure Beyond and Meld

Learn to configure git difftool and mergetool with external tools like Beyond Compare, Meld, and KDiff3 for visual diffing and three-way merging workflows.

✓ Live

Git Describe -- Generate Human-Readable Commit Identifiers from Tags

Learn to use git describe for producing readable version strings from annotated tags, integrating with build systems and generating deployment identifiers.

✓ Live

Git Commit-Graph -- Speed Up Log, Merge, and Reachability Operations

Learn to use git commit-graph for accelerating merge-base calculations, log traversals, and reachability queries by precomputing commit graph data structures.

✓ Live

Git Sparse Index -- Optimized Index for Monorepo Performance

Learn to use git sparse index with cone-mode sparse checkout to reduce index size and speed up git status and add operations in large monorepo projects.

✓ Live

Git Scalar -- Microsoft's Large Repository Management Tool for Git

Learn to use Git Scalar for managing large repositories with background maintenance, sparse checkout, and optimized prefetch for faster clone and fetch.

✓ Live

Git Imerge -- Incremental Merge and Rebase for Complex Conflicts

Learn to use git imerge for breaking complex merges and rebases into smaller incremental steps, reducing conflict resolution burden in feature branches.

✓ Live

Squash-Merge, Rebase-Merge, and Merge Commit -- Reintegration Strategies Compared

Learn to compare squash-merge, rebase-merge, and regular merge commit strategies for feature branch reintegration with history and audit trail trade-offs.

✓ Live

Release Branching and Tagging Strategies for Stable Software Delivery

Learn to manage release branches with semantic versioning tags, hotfix branches, release candidates, and LTS strategies for stable software delivery workflows.

✓ Live

Managing Multiple Repositories with Repo, Meta, and Gitslave Tools

Learn to coordinate multiple Git repositories using Repo, Meta, and Gitslave tools for polyrepo architectures with cross-repo dependency and build management.

✓ Live

Git Alternates -- Shared Object Storage Across Cloned Repositories

Learn to use git alternates for sharing object storage between cloned repositories on the same machine to reduce disk space for large repository clones.

✓ Live

Advanced Git Worktree Usage -- Parallel Development Without Stashing

Learn advanced git worktree techniques including linked worktrees for parallel branch work, detached worktrees for review, and locking for long-lived branches.

✓ Live

GitHub Actions Reusable Workflows and Composite Actions -- Complete Guide

Learn to create and share reusable GitHub Actions workflows and composite actions across repositories to reduce CI duplication and enforce pipeline standards.

✓ Live

GitHub Environments -- Deployment Gates, Protection Rules, and Secrets

Learn to configure GitHub Environments with required reviewers, deployment branch policies, secrets, and wait timers for controlled software releases.

✓ Live

GitHub Secret Scanning -- Detect and Remediate Leaked Credentials

Learn to use GitHub secret scanning for automatic detection of API keys and tokens in repositories with push protection and custom pattern definition support.

✓ Live

GitHub Code Scanning -- Automated Vulnerability Detection with CodeQL

Learn to use GitHub code scanning with CodeQL for automated vulnerability detection, custom query development, and security alert management in pull requests.

✓ Live

GitHub Dependabot -- Automated Dependency Updates and Security Fixes

Learn to configure GitHub Dependabot for automated dependency updates, security patching, custom schedules, and group pull requests across ecosystems.

✓ Live

GitHub Projects -- Kanban-Scale Project Management with Automation

Learn to use GitHub Projects for issue tracking, sprint planning, and team workflow management with custom fields, Kanban board views, and automation rules.

✓ Live

GitLab CI Advanced Rules, Needs, and Parallel Jobs Configuration

Learn to configure GitLab CI rules conditions, needs dependencies, parallel matrix jobs, resource groups, and dynamic pipeline generation for complex builds.

✓ Live

GitLab Epics and Portfolio Management -- Track Cross-Group Initiatives

Learn to use GitLab epics for organizing issues across groups and subgroups, tracking progress with burndowns, and portfolio roadmaps for multi-team projects.

✓ Live

GitLab Merge Trains -- Queued Merges for Stable Main Branches

Learn to use GitLab merge trains for sequential merge queuing with automatic rebase, parallel CI verification, and always-green main branch stability.

✓ Live

SVN Subversion Basics -- Centralized Version Control for Legacy Projects

Learn SVN Subversion fundamentals including checkout, commit, update, merge, and branch management for centralized version control in enterprise environments.

✓ Live

Mercurial Hg Basics -- Distributed Version Control for Large Projects

Learn Mercurial Hg fundamentals including cloning, committing, branching, merging, and revsets for distributed version control with Python extensibility.

✓ Live

Perforce Helix Core Basics -- Enterprise-Grade Version Control

Learn Perforce Helix Core fundamentals including depot structure, workspace management, changelists, and stream branching for enterprise version control.

✓ Live

Git vs SVN -- Comparing Distributed and Centralized Version Control

Learn the key differences between Git and SVN including branching models, offline workflows, merge strategies, and migration considerations for your team.

✓ Live

Git vs Mercurial vs Perforce vs SVN -- Version Control Systems Compared

Learn to compare Git, Mercurial, Perforce, and SVN across branching, merging, performance, and ecosystems for selecting the right version control tool.

✓ Live

GitOps Workflows -- Deploy Infrastructure with Git as Source of Truth

Learn GitOps principles using Git as the single source of truth for declarative infrastructure with automated reconciliation through ArgoCD and Flux tools.

✓ Live

Git Certifications Guide -- Grow Your Version Control Career

Learn about Git certifications including GitHub Foundations and GitLab Certified Associate to validate your skills and advance your version control career.

✓ Live

Git Practice Projects -- Hands-On Exercises for Version Control Mastery

Learn Git through practical projects including collaboration simulations, conflict resolution drills, and release management exercises for hands-on mastery.

✓ Live

Git Team Workflows -- Collaboration Best Practices for Development Teams

Learn Git collaboration best practices including code review workflows, branch naming conventions, commit standards, and merge etiquette for development teams.

✓ Live

Advanced Git Cheatsheet -- Commands, Tips, and Tricks for Power Users

Learn advanced Git commands including plumbing tools, reflog recovery, patch workflows, bisect automation, and interactive rebase strategies for daily use.

✓ Live

Git Security Best Practices -- Signed Commits, Audit Trails, and Access Control

Learn Git security best practices including GPG signing, pre-receive hooks, secret scanning, branch protection rules, and audit logging for compliance.

✓ Live

All 107 topics in Version Control — Complete Guide are published.