Version control with Git
Length: 2 days
Description
Git is a distributed, open-source version-control system. It is free to download and use, and is a sophisticated, flexible, and high-speed software system for handling version control. Git is distributed, so everyone can create and revert commits, even if they’re disconnected from the Internet. It knows how to handle branches and merges more easily than nearly any other version-control system.
However, Git is notoriously difficult for developers to learn and understand. Companies that adopt Git gain a lot, but their developers often suffer along the way.
This is the course that some of the world’s largest and best-known companies invite me to teach, again and again, to help their developers adopt and use Git into their day-to-day programming.
This course is designed to help people learn and understand Git, so that they can use it in their day-to-day lives. It not only teaches the “what” of Git, but the “how” and the “why,” as well. At the end of this two-day course, participants will be able to use Git in their daily work.
Like all of my courses, this is taught without slides. Instead, I live-code into a Jupyter notebook that is available in real time and which I distribute to participants at the end of the course.
Let’s talk about how to customize this course for your team! Set a meeting at https://savvycal.com/reuven/corp-training.
Audience
This course is aimed at programmers who have little or no experience with Git. There will be no programming in the course, so you can come with a background in any programming language at all.
Syllabus
• What is version control? What is Git?
• Repositories: Creation and configuration
• Commits. Staging vs. committing. HEAD and branches.
• Git status messages. Logs. Diffs.
• Different ways to fix mistakes.
• Git’s database and objects.
• Branches: What they are (and aren’t) in Git. Moving between branches. Removing branches.
• Merging: Fast forward. Merge commit. Rebase. Cherry pick. Squash. Interactive rebase. Handling conflicts when merging.
• Remote repos: Remotes. Cloning. Pulling and pushing. Avoiding trouble. Collaboration via private branches. Handling conflicts. Strategies.
• Pull requests and GitHub
•
