The course is divided into small modules.Each moduleincludes hands on based upon the time frame of the course: Introduction, Branches, gitflowand other stuff (Tools, hooks, aliases, bisect, submodules, stash and more).On one hand Git is the most popular SCM tool but on the other hand git is the most complicated one of them all so users need to get familiar with git and its abilities and internals

This course is for anyone who have been using any kind of VCS (Version control system) before.

In this course the user will get to know git, its internals, how to use efficiently on a daily basis with focus on what are branches and what is the recommended way to use them.The main objective of this course it to knowgit, its internals and how got works behind the scenes, touse efficiently on a daily basis with focus on what are branchesand whatis the recommended way to use them.

User will learns

  • How to configure git (configuration, hooks, aliases, gitconfig)
  • What are the key features of git (DVCS, 3-states)
  • What are branches and how to use them efficiently
  • How does merges work (ff, no-ff, rebase)
  • git flow and why it is recommended as the daily workflow
  • hooks, how to create hooks and why/when to use them
  • git “servers” and SourecTree
  • How to improve their productivity and code quality (pull request)
  • Tips & Tricks and beyond
}

16 Hours

Software Engineering

h

Certificate: No

Price: contact us for more details

Leave your details

Course Outline

  • Module 1: Introduction

    • History
      • The history of git SCSS, RCS
    • Key Features
      • DVCS
      • 3-states
      • Storage
      • Heuristics
    • 3- states
      • What is 3-states and why do we need
      • What can we do with the 3-states
      • Smudge – Clean
    • Configuration
      • Aliases,
      • CRLF
      • .gitconfig
      • .gitkeep
      • .gitignore
    • Commit
      • What is git commit
      • How does git store snapshots

     

    Module 2: Commands

    • The basic and most common git commands
      • Init / clone
      • add / rm
      • commit
      • status
      • checkout
      • log

     

    Module 3: Branches

    • Branches
      • What are branches
    • Branches command
      • Checkout
      • Fetch
      • Branch
      • Merge
      • pull / push
    • SourceTree
      • SourceTree is a Git Gui
    • Practice
      • Single branch
      • Multiple branches
      • Single remote branch
      • Multiple remote branches
      • Multiple branches and users

     

    Module 4: Merges

    • Merge / Rebase
      • What is git merge
      • How does git merge branches
        • ff
        • no-ff
        • rebase
        • merge-commit
      • Advanced merge strategies
        • Theirs
        • ours

     

 Module 5: Git Flow

  • Git flow
    • What is git flow
    • Deep understanding of the git flow model
  • How do we scale it?
    • What are the different branches and dots
  • Automation
    • How can we use the gitflow scripts for automating the flow?
    • Best practice for git flow
  • Demo
    • Hands on the git flow abilities and automation

 

Module 6: Advanced Topics

  • Advanced and useful git commands and abilities
    • Bisect
    • Stash
    • squash
    • submodule / subtree
    • rerere
    • assume-unchanged
    • cherry-pick
      • fake merge / detailed merge
  • git LFS
  • worktree
    • auto completion / auto correct

 

  • Undo changes
    • reflog
    • reset
    • revert

 

  • tags
  • notes
  • hooks
  • clean
  • refspec

 

Module 7: Pull Request

  • Why should we use this feature?
    • What is pull request?
    • Why should we always use it?
    • What does pull request includes?
    • CI/CD

 

Module 8: BitBucket/ Github

  • Git server – In this session we will learn how to use git server
    • Set up ssh keys
    • Pull request with BitBucket/Github
    • Integration with JIRA/Travis-CI
    • CI/CD with Jenkins

Server administration