Skip to main content

Intro

This course is designed for developers, data professionals, and anyone interested in mastering version control using Git. By the end of this course, you'll be proficient in using Git for version control and collaborating effectively using GitHub.

If you like this course and want to support the project, you can do so here:

Support me on Ko-fi

Grades

Grade 1: Getting Started with Git

  • What is Git Understanding version control and the role of Git in software development.

  • Installing Git:

    • Windows: Using the Git for Windows installer.

    • macOS: Installing via Homebrew or Xcode Command Line Tools.

    • Linux: Using package managers like apt or yum.

  • Git Config: Setting up user name and email with git config.

  • Git init: Initializing a repository with git init.

  • Git clone: Cloning an existing repository with git clone.

Grade 2: Basic Git Workflow

Grade 3: Collaborating with GitHub

  • GitHub: Creating a GitHub account.

  • Generating SSH keys and adding them to GitHub.

  • Connecting Local Repository to GitHub:

  • Adding a remote with git remote add.

  • Pushing changes with git push.

  • Using git fetch to retrieve changes.

  • Using git pull to fetch and merge changes.

  • Understanding Remotes: Managing multiple remotes and tracking branches.

Grade 4: Branching and Merging

  • Creating branches with git branch.

  • Switching branches with git checkout.

  • Merging changes with git merge.

  • Resolving merge conflicts.

  • Branch Management:

  • Deleting branches.

  • Renaming branches.

  • Best Practices: Using feature branches and pull requests.

Grade 5: Inspecting and Comparing Changes

  • Using git diff to compare changes.

  • Comparing branches and commits.

  • What is HEAD in Git?

  • Navigating with git checkout.

  • Using git revert to undo commits.

  • Using git reset to unstage or undo changes.

Grade 6: Advanced Git Techniques

  • Saving work-in-progress with git stash.

  • Applying stashed changes.

  • Creating tags with git tag.

  • Pushing tags to remote repositories.

  • Applying specific commits with git cherry-pick.

  • Rewriting commit history with git rebase`.

  • Ignoring Files: Using .gitignore to exclude files from tracking.

Grade 7: Troubleshooting and Optimization

  • Identifying and resolving merge conflicts.

  • Using tools like git mergetool.

  • Removing untracked files with git clean.

  • Pruning branches with git prune.

  • Compressing repository with git gc.

  • Analyzing repository with git fsck.

Grade 8: Git in Real-World Scenarios

  • Understanding Gitflow and other branching strategies.

  • Using pull requests for code reviews.

  • Setting up continuous integration with GitHub Actions.

  • Automating deployments.

  • Managing sensitive data and .gitignore.

  • Signing commits with GPG.