git

Version control is a system that records changes to a file or set of files over time so that one can recall precise versions later. Git has advanced and matured to be easy to use and yet preserve these initial qualities. It’s extremely fast, it’s very proficient with large projects, and it has an implausible branching system for non-linear development. The important thing to appreciate about Git is that it thinks about version control very differently than Subversion or Perforce or whatever SCM.

Git training course skims over the “common” version control commands that most people are familiar with and then dives into the repository and it’s format to make the Participants aware of what goes on beneath the hood so that they are comfortable using the system.

  • Git workshop is for any software developer and system integrators.

COURSE AGENDA

  • Installing Git on a Mac
  • Installing Git on Windows
  • Installing Git on Linux
  • Configuring Git
  • Exploring Git auto-completion
  • Using Git help
  • Understanding version control
  • The history of Git
  • About distributed version control
  • Who should use Git?
  • Initializing a repository
  • Understanding where Git files are stored
  • Performing your first commit
  • Writing commit messages
  • Viewing the commit log
  • Exploring the three-trees architecture
  • The Git workflow
  • Using hash values (SHA-1)
  • Working with the HEAD pointer
  • Adding files
  • Editing files
  • Viewing changes with diff
  • Viewing only staged changes
  • Deleting files
  • Moving and renaming files
  • Introducing the Explore California web site
  • Initializing Git
  • Editing the support phone number
  • Editing the backpack file name and links
  • Undoing working directory changes
  • Unstaging files
  • Amending commits
  • Retrieving old versions
  • Reverting a commit
  • Using reset to undo commits
  • Demonstrating a soft reset
  • Demonstrating a mixed reset
  • Demonstrating a hard reset
  • Removing untracked files
  • Using .gitignore files
  • Understanding what to ignore
  • Ignoring files globally
  • Ignoring tracked files
  • Tracking empty directories
  • Referencing commits
  • Exploring tree listings
  • Getting more from the commit log
  • Viewing commits
  • Comparing commits
  • Branching overview
  • Viewing and creating branches
  • Switching branches
  • Creating and switching branches
  • Switching branches with uncommitted changes
  • Comparing branches
  • Renaming branches
  • Deleting branches
  • Configuring the command prompt to show the branch
  • Merging code
  • Using fast-forward merge vs. true merge
  • Merging conflicts
  • Resolving merge conflicts
  • Exploring strategies to reduce merge conflicts
  • Saving changes in the stash
  • Viewing stashed changes
  • Retrieving stashed changes
  • Deleting stashed changes
  • Using local and remote repositories
  • Setting up a GitHub account
  • Adding a remote repository
  • Creating a remote branch
  • Cloning a remote repository
  • Tracking remote branches
  • Pushing changes to a remote repository
  • Fetching changes from a remote repository
  • Merging in fetched changes
  • Checking out remote branches
  • Pushing to an updated remote branch
  • Deleting a remote branch
  • Enabling collaboration
  • A collaboration workflow
  • Setting up aliases for common commands
  • Using SSH keys for remote login
  • Exploring integrated development environments
  • Exploring graphical user interfaces
  • Understanding Git hosting