GIT Basic and Administration

מק"ט: #40831 | משך קורס: 16 שעות אק'

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, how to use it on a daily basis with focus on what are branches and what is the recommended way to use them (gitflow) and providing tools and tips for a better coding & productivity.

לפרטים נוספים, מלא את פרטיך או התקשר 03-7100673
*שדות חובה

מטרות

  • User will learn git basics, git commands and much more.
  • User will learn how to configure git (.gitconfig, .gitkeep, hooks, aliases etc)
  • User will know what are the key features of git
  • User will learn what are branches and how to use them
    • Local branch(s) & Remote branches
    • Multiple tasks & multiple users
    • Advanced techniques how to work on multiple branches
  • User will learn what is git flow and how to use it in order to enhanced daily work
  • User will learn how to improve their productivity and code quality (git stash, pull request, git bisect, worktree, partial add and more)  

קהל יעד

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

תנאי קדם

Participants in this course should have some experience with a version-control system, such as CVS, Subversion, or SourceSafe. They should be comfortable using the command line, and preferably using Unix commands.

נושאים

Introduction - Session goals:

  • User will get to know git
  • User will know what are the key features of git
    • DVCS
    • Fully offline
    • Integrity (SHA-1)
    • Compact
    • Submodules
    • Fast forward vs Non fast forward
    • The Three States 1
    • Snapshots
    • Branches (Separate full session)
  • User will be able to configure git (on different levels)
    • System (os level)
    • Global (cross-repository per user)
    • Project (local per repository)
    • -c flag (override configuration fot the current command)
    • .gitignore
    • .gitattributes
    • .gitkeep - Tracking empty directories
  • User will be able to create and work on his first git repository
  • Our first git repository
    • Create our first git repository, add and update content, commit, view the log.
    • During this session we will use the basics that was exposed during the introduction
      • Create local git repository
      • Create content
      • Add content
      • Commit
      • View log
      • Modify content
      • View the project structure
      • add .gitignore/.gitkeep

 

Branches [Part I] - Session goals:

  • User will learn what are branches
  • User will learn the daily git branch commands (create, delete, merge, pull, push)
  • User will be able to use branches both locally and remotely (+ switching between branches)
  • User will be able to work (using branches) with other developers
  • User will be able to work on several assignments simultaneously
  • User will be able to merge branches and to publish his work (merge)
  • User will be able to squash commits to a single message (interactive rebase - simple)

 

Session note:
The session will start with the simplest scenarios and we will build it up to the most complicated scenario.

  1. Single Local branch
  2. Multiple local branches
  3. Single remote branch
  4. Multiple remote branch + multiple users working on the same branch

 

Why/When to use branches

  • What are the benefits of using branches
  • What we have to know about branches
    • Merge
    • Rebase
    • Fast forward vs Non fast forward

 

Branches II - Gitflow A successful Git branching model
Gitflow is sort of convention on how to use git for daily development.
In this session we will dive into gitflow and we will build our repository according to it, we will demonstrate real life development phases and how they fit in the gitflow model.

 

Other stuff - Additional git features and tooling
In this session we will be exposed to some other git commands and features (+tools) which can help us be more productive and produce better code
This session will cover tools and some useful git commands.

  • Pull Request
  • Sourcetree
  • Stash
  • Bisect
  • Squash
  • Reflog
  • Tagging
  • Aliases
  • Hooks
  • Git-svn
  • worktree
  • rerere
  • Partial add
  • advanced log
  • filter-branch
  • apply-patch
  • And more…. 
תגיות