Git & GitHub Learning Guide

Git & GitHub Learning Guide

Introduction

This folder contains materials for learning the Git version control system and the GitHub collaboration platform. You can progress step by step from basic commands to CI/CD automation.

Target Audience: Developer beginners, those who want to learn version control


Learning Roadmap

[Git Basics]          [GitHub]              [Advanced]
    │                    │                    │
    ▼                    ▼                    ▼
Git Basics ────────▶ Getting Started ────▶ Advanced Git
    │                  with GitHub            │
    ▼                    │                    ▼
Basic Commands ─────▶ GitHub          ────▶ GitHub Actions
    │                Collaboration
    
Branches

Prerequisites

  • Basic terminal/command-line usage
  • Text editor usage

File List

Filename Difficulty Key Topics
01_Git_Basics.md Git concepts, installation, initial setup
02_Basic_Commands.md status, add, commit, log
03_Branches.md ⭐⭐ Branch creation, merging, conflict resolution
04_GitHub_Getting_Started.md Remote repositories, push, pull, clone
05_GitHub_Collaboration.md ⭐⭐ Pull Requests, code reviews, Fork
06_Git_Advanced.md ⭐⭐⭐ rebase, cherry-pick, stash, reset
07_GitHub_Actions.md ⭐⭐⭐ CI/CD, workflow automation
08_Git_Workflow_Strategies.md ⭐⭐⭐ Git Flow, GitHub Flow, trunk-based
09_Advanced_Git_Techniques.md ⭐⭐⭐⭐ hooks, submodules, worktrees
10_Monorepo_Management.md ⭐⭐⭐⭐ Nx, Turborepo, dependency management

Stage 1: Git Basics (Local)

  1. Git Basics → Basic Commands → Branches

Stage 2: GitHub Collaboration

  1. Getting Started with GitHub → GitHub Collaboration

Stage 3: Advanced Usage

  1. Advanced Git → GitHub Actions → Git Workflow Strategies

Stage 4: Expert

  1. Advanced Git Techniques → Monorepo Management

Quick Start

Install Git

# macOS
brew install git

# Ubuntu
sudo apt-get install git

# Verify installation
git --version

Initial Setup

git config --global user.name "Your Name"
git config --global user.email "your@email.com"

First Commit

git init
git add .
git commit -m "Initial commit"

to navigate between lessons