Introduction to Git

  1. What is the purpose of a Version Control System (VCS) like Git, Subversion, and Mercury?
  2. How to correlate Git with modern-day DevOps tools like Docker, Kubernetes, Chef, Ansible, Terraform, and Jenkins?

Overview of Git

  1. How does the centralized Git architecture integrate with a Git service provider?
  2. How to install and configure Git in Linux machine? (hands-on)

Git repository

  1. What are the local and remote Git repositories? How to correlate it with the project source tree?
  2. How to initialize an empty Git repository inside your source tree? (hands-on)
  3. How to ignore specific files and directories getting tracked by the Git repository? (hands-on)
  4. How to add the source tree to the Git repository? (hands-on)
  5. How to commit changes in the source tree to the Git repository? (hands-on)
  6. How push/pull mechanism work inside the Git repository? (hands-on)

Git service provider

  1. Configuring SSH key-based authentication in Git service providers (hands-on)
  2. Creating a remote Git repository in GitHub and Bitbucket (hands-on)
  3. How to map the local Git repository to the remote Git repository? (hands-on)
  4. How to push changes from the local Git repository to the remote Git repository? (hands-on)

Git workflow

  1. Visualizing the architecture of Git workflow and its impact on team software development
  2. How to initialize Git workflow for the project source tree? (hands-on)
  3. How does a team member adapt to the Git workflow? (hands-on)
  4. How to cherry-pick and apply Git commits to a specific Git branch? (hands-on)
  5. How to straight merge from one Git branch to another? (hands-on)
  6. How to use the Pull Request (PR) feature of Git service providers to simplify our Git workflow? (hands-on)
  7. How to use Git tag to create a release from a Git branch? (hands-on)
  8. How does Git workflow effectively handle post-deployment bugs and issues? (hands-on)

Git scenario

  1. Understanding the major Git scenarios like merge conflicts, stashing, resetting, and rebasing
  2. How to simulate a conflict during Git merge and fix the conflict? (hands-on)
  3. How to effectively use the Git stash and the Git pop? (hands-on)
  4. How to use Git reset to undo commits from a branch? (hands-on)
  5. How to preserve linear commit history using Git rebase? (hands-on)