Version Control with Git

Objectives

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

Audience

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

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.

Prerequisites

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

Syllabus

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

Other

  • 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)

Let's talk

If you would like to bring this course to your organization, let's talk about it! You can reach me via email at gabor@szabgab.com or you can go ahead and schedule a chat:

Schedule a call