This meetup is going to be the second of a two-part introductory series on Git. We will pick up where we left off at the end of Part 1. This time we will focus on how to use Git well when working with a team.
This is a follow-along session. Attendees need to bring a laptop (Windows), and be prepared to follow-along, typing the same commands seen during the presentation. There will be no PowerPoint slides or other materials. The intention, similar to learning a musical instrument, is to gain muscle memory. We will only be using the command-line; no source control UIs will be shown.
This series will be programming-language-agnostic. Although this is a .NET meetup group, the content of these sessions will be not be C#/F#/VB. Instead, we will use simple text files, editable in notepad, and at least one other arbitrary language-agnostic binary file type.
The goal is two-fold: To learn the most common/valuable Git commands, and, what practices one can follow to fully harness the enormous power of what is arguably the best version control system available today.
What is a repository?
How does Git compare to other systems like Subversion/TFS?
Initial read-only commands
What is a staging area?
How to add/remove/modify text files
Recovering from mistakes made during local development
Basic merge conflict resolution
Branching strategies for working on (multiple parallel) teams
Advanced merge conflict resolution
Installation is covered during Part 1, so attendees who are only attending Part 2 will need to come with Git already installed and setup. Installation will not be covered during Part 2.
Disclaimer: Git is very powerful, and has a very large amount of commands. The purpose of this two-part series is to learn the smallest amount of commands needed to achieve the most amount of value from Git, in a standard/normal software development environment. As such, advanced scenarios, rarely-needed commands, alternate practices/patterns, etcetera, will not be discussed. The purpose is to end up with a single tried-and-true recipe that will work on the vast majority of software projects.