Course Description:
This course provides you with a solid, hands-on foundation for understanding the Git version control system. It is a core component of DevOps, continuous delivery pipelines and cloud-native computing.
In this course you will build a strong conceptual understanding of the technology, and afterward will be able to confidently dig deeper on any topic that interests you.
Note: Every student has assigned to him his own virtual lab environment setup.
Target audience:
- Anyone interested in using source control and specifically Git
- Software engineers, developers, programmers new to Git
Prerequisites:
This course assumes no previous knowledge of Git, but if you do have experience with it, you may find this course to be both useful and challenging.
Curriculum:
Module 01: Introduction
- Why Command Line?
- Why Source Control?
- Why Git?
- Git vs SVN
- Git terminology
- Git objects
- Git installation (windows + Unix)
Module 02: Getting started
- Using GitHub and setting up a project
- Clone a git repository and have some basic workflow
Module 03: Git Basics
Module 04: Git init
- Creating a fresh project
- Adding Git to an existing project
- Joining an existing project (git clone)
- Basic git workflow
- Tracking files
- Editing files
- Adding/Recursive adding files to a git repository
- Renaming, Moving and Deleting files
- Accessing the history of modifications
- Git aliases
- Ignoring unwanted files and folders
- Cleanup and rolling back to previous versions
Module 05: Merge and Diff tools
- Installation overview
- P4Merge installation and configuration
Module 06: How to make comparisons
- Comparing the working directory and the staging area
- Comparing the working directory with the last commit (Git repository)
- Comparing between the staging area and the last commit
- Compare only specific files
- Differences between different commits
Module 07: Branching and Merging on Git
- Branching Basics
- Checkout to a different branch
- Fast forward Merges
- Automating merges
- Merge conflicts and how to resolve them
- Cherrypick
- What to do in case of local branch deletion (for recovery)
Module 08: Stashing
- Stash vs branch
- Simple examples regarding stashing
- Stashing untracked files
- Managing Multiple Stashes
- Stashing into a branch
Module 09: Tagging
- Basic tag examples
- Annotated tags
- Comparing Tags
- Tag specific commits
- Updating tags
- Using GitHub and configuring tags
Module 10: Git hooks
- Local git hooks
- WebHooks
- How to automise certain tasks before/after committing to Git
Module 11: Working with remotes
Additional details:
To attend this course, you need to have:
- PC/Laptop with internet access
- Updated web browser