Arich Infotech

GIT

Duration in Hours : 20

Duration in Days: 10

GIT

Course Code: DGT20CS

10 Hours of Theory

10 Hours Lab

  1. What is Version Control?
  2. Types of Version Control Systems (Centralized vs Distributed)
  3. Introduction to Git and GitHub/GitLab
  4. History and Benefits of Using Git
  5. Installing Git and Git Configuration
  1. Initializing a Git repository (`git init`)
  2. Git file lifecycle: Working Directory, Staging Area, Repository
  3. Creating snapshots with Git commits (`git commit`)
  4. Checking status and tracking changes (`git status`)
  5. Adding files to staging (`git add`)
  6. Viewing commit history (`git log`)
  7. Viewing differences between commits and working files (`git diff`)
  1. Introduction to Git branches
  2. Creating branches (`git branch`)
  3. Switching branches (`git checkout`)
  4. Merging branches (`git merge`)
  5. Fast-forward and 3-way merge
  6. Handling merge conflicts
  7. Deleting branches (`git branch -d`)
  8. Visualizing branches (`git log –graph`)
  1. Introduction to remote repositories
  2. Cloning a repository (`git clone`)
  3. Pushing and pulling changes (`git push`, `git pull`)
  4. Adding remote repositories (`git remote add`)
  5. Fetching and merging changes (`git fetch`, `git merge`)
  6. Working with GitHub/GitLab repositories
  1. Forking and cloning repositories
  2. Pull requests (PR) on GitHub/GitLab
  3. Code review and collaboration workflow
  4. Rebasing and resolving conflicts
  5. Stashing changes (`git stash`)
  6. Cherry-picking commits (`git cherry-pick`)
  7. Reverting commits (`git revert`)
  1. Resetting changes: Soft, Mixed, and Hard Reset (`git reset`)
  2. Rewriting history with `git rebase`
  3. Using `git reflog` to recover lost commits
  4. Interactive rebasing for clean history
  5. Using `git bisect` to identify bugs
  6. Tagging releases (`git tag`)
  7. Lightweight vs Annotated Tags
  8. Working with Submodules
  1. Feature branch workflow
  2. Gitflow Workflow
  3. Forking Workflow
  4. Trunk-based development
  5. Git strategies for scaling and managing large projects
  1. Aliases and Git shortcuts
  2. Setting up `.gitignore`
  3. Git hooks for automation
  4. Git Large File Storage (LFS)
  5. Git GUI tools (e.g., SourceTree, GitKraken)
  1. Using GitHub/GitLab for team collaboration
  2. Managing issues and project boards
  3. Creating and reviewing pull requests
  4. Continuous Integration (CI) with GitHub Actions / GitLab CI
  5. Using Wikis and GitHub Pages for documentation
  1. Writing good commit messages
  2. Commit early and often
  3. Using `.gitignore` effectively
  4. Squashing commits before merging
  5. Reviewing diffs before committing
  6. Avoiding rebasing in shared branches