Why take this course?

Using Git effectively is a crucial skill to have when working on large software projects

  • Learn and understand the Git mental model

  • Use branches like a pro! Learn how to merge, rebase, handle detached head and much more!

  • Learn how to manage your source code and "time-travel" to past states and fix mistakes

  • Be a comfortable command line Git user. You won't need UI for working with Git!

Course curriculum

  • 1

    Welcome!

  • 2

    Managing versions with Git

    • What does a version control system do?

    • Git and Github - high level workflows

    • Installing git

    • Initializing repository

    • Git two stage commit explained

    • The three state architecture

    • Selectively staging and committing

    • Think Changes Not Files!

    • Commit message editor

    • Seeing previous commits

    • Committing a file delete

    • Looking at code changes in commit history

    • Clearing local changes with git checkout

    • Unstaging files with git restore

    • Amending your last commit

    • Viewing diff of your changes

    • Using gitignore

  • 3

    Branching and merging

    • Understanding a git commit

    • Branching concepts

    • Understanding branching with Git

    • Creating and switching between branches

    • Committing to a branch

    • Understanding branch pointers and commits

    • Fast forward merge

    • Merge with commit

    • Resolving merge conflicts

    • Git log with branches

    • Deleting branches

    • Switching to an older commit

    • Detached head - understanding and fixing

    • Rebasing explained - what and why

    • Doing a rebase

  • 4

    Working with remote repositories

    • Cloning a remote repository

    • Committing to a cloned repo

    • Making changes to the remote repo

    • Understanding remote branches

    • Checking out remote branches and handling detached head

    • Examining and fetching from remote using git fetch

    • Syncing remote changes with local

    • Using git pull

    • Fetching, merging and pushing from other remote branches

    • Git fetch vs pull

    • Doing git pull with rebase

  • 5

    Basic Github workflow

    • Forking a repository

    • Making a pull request

  • 6

    Next Steps

    • Conclusion

    • Before you go...