We use slidev for writing our slides. This
allows us to have a common template, to be able to export slides in a very fast
way and to review them as text, allowing us to use git to correct us without
doing it "the old way" (not as old as saving them on floppy disks USB
devices and passing them around).
To start the slide show:
npm installnpm run dev git-training/git.md- visit http://localhost:3030
This training provides a comprehensive introduction to Git, a powerful and essential version control system. You'll learn how Git tracks changes to files, enables collaboration, and simplifies software development workflows. The course covers fundamental concepts, basic commands, branching and merging, working with remote repositories, and how to undo changes.
By the end of this training, you will be able to:
- Understand the basic concepts of version control.
- Install and configure Git on your local system.
- Initialize a Git repository and manage files within it.
- Use Git to track changes, stage them, and commit them.
- Work with Git branches for parallel development and feature isolation.
- Collaborate with others using remote repositories like GitHub.
- Undo mistakes and recover from errors using Git.
- Use advanced Git techniques.
This training is designed for:
- Beginners who are new to version control.
- Developers who want to learn Git for software development.
- Anyone who wants to track changes to files and collaborate with others.
- No prior knowledge of Git is required.
- Basic computer skills and familiarity with the command line are helpful but not required.
The training is divided into the following parts:
Part 1: Introduction to Version Control
- What is Version Control?
- Why Use Version Control?
- Benefits of Version Control: Tracking Changes, Collaboration, Experimentation, Rollback, Branching and Merging.
Part 2: Getting Started with Git
- Installing Git (Windows, macOS, Linux)
- Checking Installation
- Basic Git Configuration (username, email)
- Checking Configuration
- Initializing a Repository (
git init) - Working Directory, Staging Area, Repository
- Adding Files to Staging (
git add) - Checking Status (
git status) - Committing Changes (
git commit) - Commit Message Guidelines
- Viewing Commit History (
git log) - Ignoring Files (
.gitignore) - Creating
.gitignore
Part 3: Working with Branches
- What are Branches?
- Why Use Branches?
- Listing Branches (
git branch) - Creating a New Branch (
git branch <branch_name>) - Switching Branches (
git checkout <branch_name>) - Creating and Switching (
git checkout -b <branch_name>) - Making Changes on a Branch
- Switching Back to Main
- Viewing Branch Changes
- Merging Branches (
git merge) - Example Merge (No Conflicts)
- Merge Conflicts
- Identifying Conflicts
- Resolving Conflicts
- Deleting Branches (Local)
- Branching Strategies
- Keeping Main Updated
Part 4: Working with Remote Repositories
- What are Remote Repositories?
- Adding a Remote (
git remote add) - Viewing Remotes (
git remote -v) - Pushing to a Remote (
git push) - First Push and Tracking (
git push -u) - Fetching Changes (
git fetch) - Pulling Changes (
git pull) - Cloning a Repository (
git clone) - Basic Collaboration Workflow
- Pull Requests
- Keeping Local Synced
- Dealing with Pull Conflicts
- Rebasing (Introduction)
- Comparing Branches
- Deleting Remote Branches
- Troubleshooting Remote Issues
Part 5: Undoing Changes
- Undoing Changes
- Unstaged Changes (
git restore) - Unstaging Changes (
git restore --staged) - Undoing the Last Commit (
git reset) - Understanding HEAD
- Going Back to a Commit (
git reset --hard <commit_hash>) - Undoing a Pushed Commit (
git revert <commit_hash>) - Cleaning Untracked Files (
git clean) - Recovering Deleted Commits (
git reflog) - Best Practices for Undoing
Part 6: Advanced Topics
- Stashing Changes
- Tagging Releases
- Ignoring Changes in Tracked Files
- Git Aliases
- Further Learning
Part 7: Conclusion and Q&A
- Summary of Git commands
- Q&A session
- Git Documentation: https://git-scm.com/doc
- Online tutorials and courses (e.g., Coursera, Udemy, freeCodeCamp).
- Community forums (e.g., Stack Overflow).