1. Introduction to Git
Learning Objectives - This is an introduction session to Git. Participants will learn what is a version control system, why we need one? Participants will also learn the different types of version control system and the advantages and disadvantages of traditional VCS. Then we will end this session with an introduction to Git.
Topics - What is version control/revision control system, Features of VCS, Benefits of VCS, Drawbacks of VCS, Types of VCS, General overview of Centralized VCS and an introduction to Git-Distributed Version control system.
2. Git Installation and Setup
Learning Objectives - In this session, we will install, setup and configure Git. We will also learn how to install on different OS and configure. We will also see the different configurations possible. Then we will create an account on GitHub and walk through GitHub and different options available.
Topic - Installation of Git on Windows/Mac/Linux/Unix, Configuration of Git, Why command line for this course, Walkthrough of the command line basics, Git file life cycle, Walkthrough of GitHub, Creating Git repository- Local repository and configuring to GitHub, Creating repository on GitHub and cloning on local, Understanding basic git commands- git add, rm, commit, push, clone, init, Ignoring files, Command shortcuts and Revisiting the file life cycle with understanding the internals of Git.
3. Working with Remote repositories
Learning Objectives - In this module, we will understand the Git file lifecycle, work will basic git command, understand local and remote repositories. Then we will work with remote repository and perform the git operations on remote repository.
Topics - Understanding Git buzzwords- Head, Master, Dev/Feature branch, Clone, Push, Collaborator, Remote, Configuring remote repo on GitHub, Working with remote repository- Adding remote repo, Renaming remote repo, Deleting remote repo, Configuring remote repositories, Understanding Git pull, fetch commands and use cases, Forking and pull requests in GitHub- Origin, Upstream and Downstream.
4. Branching and Merging in Git
Learning Objectives - In this module, we sill work with branching and merging. Branching and merging is one of the key features and in this section, we will be learning different ways of merging the branches and how to perform basic git operations on branches like create, checkout, delete etc. We shall also create tags and understand the difference between branch and tag.
Topics - Introduction to branching, Branching in Git, Types of branches, Switching between branches and different commits, How internally Git manages the branches, Merging strategies- Regular merging, Fast forward commits, Rebase, Difference between Merging and Rebase commands, Deleting the branches- Safe delete after merge, Force delete, Tagging in Git- Different types of tags, Creating, deleting tags, Difference between branching and tagging and Stashing in Git.
5. Git workflows
Learning Objectives - In this module, we shall look at the different workflows that are possible in Git. We shall see the popular workflows that we can use. Then we will see the different kinds of workflows that can be created to suit our development need.
Topics - Different types of workflows in Git, Git in real time open source projects, Working with Git on Eclipse–IDE, Walkthrough of the commands, Conclusion and QA.
6. Git plugins with IDE ( Eclipse )
Learning Objectives -In this module, we shall install git plugin on Eclipse and IntelliJ IDE and walk through all the git commands using the IDE. We shall also look at the Github UI and explore various options available on Github.
Topics - Installing Ecplise IDE and configure Git plugin, Working with Git commands from IDE, Exploring GitHub UI options, Conclusion and QA.