Git & Git Hub
Introduction to Version Control
- What is Version Control?
- Benefits of Git over other VCS (e.g., SVN)
- Centralized vs Distributed VCS
- Git vs GitHub (and GitLab, Bitbucket)
Installing & Git Basics
- Configuring Git
- Initializing a repo: git init
- Checking status: git status
- Adding files: git add
- Committing changes: git commit -m
- Viewing commit history: git log
- Ignoring files with .gitignore
Working with GitHub
- Creating a GitHub account
- Creating a repository on GitHub
- Connecting local repo to GitHub
- Cloning a repository: git clone
- Pulling updates: git pull
Branching and Merging
- What are branches?
- Creating branches: git branch feature-x
- Switching branches: git checkout
- Creating & switching: git checkout -b feature-x
- Merging branches: git merge
- Resolving merge conflicts
Git Workflow Models
- git checkout vs git restore
- git reset (soft, mixed, hard)
- git revert
- Viewing diffs: git diff
Undoing Changes
- Forking repositories
- Pull requests (PRs)
- Reviewing PRs
- Merging PRs
Collaborating on GitHub
- Using Issues and Discussions
- Assigning reviewers and labels
Working with Remotes
- Listing remotes: git remote -v
- Adding/removing remotes
- Pushing to multiple remotes
- Tracking branches
Tags and Releases
- Creating tags: git tag v1.0
- Annotated vs lightweight tags
- Pushing tags to GitHub: git push origin v1.0
- GitHub Releases tab
Git Tools and Advanced Features
GUI Tools & Integrations