Code Maven

Version Control with Git

This, along with the other courses can be given either on-site in the offices of the client or on-line via Zoom or other means. Contact Gabor Szabo for more details.


This course will help you get started using Git for version control. It is good for people who have used other version control tools and also for people who have never used any version control system. This course provides the necessary knowledge to get started using Git. To make sure one is not afraid of the tool and can use it to her/his advantage.


  • Daily work as developer (checkout/add/commit/diff/etc...)
  • Setup branches and merge them together
  • Be able to create a local Git repository


  • Teams of software developers and programmers who need to work cooperatively on projects.


  • An understanding of the source code-management issues in team-based software development.

Course format

  • Duration of the course is typically 8 academic hours. Usually 1 full day or two half-days.
  • The course includes approximately 40% hands-on lab work.


About Git

  • The concepts of Git
  • Basic concepts of Git
  • Git Internals
  • Copy-Modify-Merge vs Lock-Modify-Unlock
  • Why use Git?
  • Who uses Git?

The basics

  • Installing Git on Windows, Linux and Mac
  • Setting up your profile (configuring git)
  • Creating a local repository

Daily use of Git

  • status
  • add (Adding files, directories to staging)
  • rm (Removing files, directories)
  • mv (Renaming files and directories)
  • checkout
  • commit (checking in changes)
  • diff (Viewing changes)
  • log (Viewing the log, Finding out what you, and others did)
  • Making a change

Working with branches

  • Branching
  • Merging
  • Conflict resolution
  • Tagging

Working with a remote repository

  • Cloning a remote repository
  • pull
  • push
  • Peer networks
  • Star networks


  • Ignoring generated and other unwanted files
  • Using gitk to explore history
  • Stashing files while doing something else
  • Finding out who did what (browsing log messages)
  • reset (Removing commits from the repository)
  • revert (Examining and reverting changes)
  • Binary files
  • Getting snapshots (dates and tagging)


If you are interested in this course, contact Gabor Szabo for more details.