Fundamentals of Git Source Control Management
What you'll learn
- Fundamentals of Git Version Control
- Creating a new repository
- Commits, parental relationships, and branch behaviors
- Git Diff and Difftool
- Rebasing and squashing commits
- Wielding the Git Index Effectively
- Merge Conflict Resolution
Requirements
- Basic software concepts
- Basic bash shell commands
Description
Taught by a NASA engineer, this course focuses on the core principles of Git SCM (Source Control Management) with an emphasis on understanding commits, parental relationships, and branches early in the curriculum. If you are new to git or consider yourself a beginner or even an intermediate git user, this course is for you. This curriculum includes 8 hands-on exercises that illustrate topics discussed in the videos which you and the instructor will work through together. Upon completion of this course you will have the skills needed to use Git in any new or legacy software project.
Covered topics:
Terminology and Common Commands
Understanding Commits & the Tree
Git Tags
Understanding Git Branches
Remotes and Sharing Branches
Git diff and difftool
Merge Conflict Resolution
Merging vs. Rebasing
The Git Index
Best Practices
Who this course is for:
- Beginner to intermediate software developers and engineers
- Those that have used git but occassionaly get confused by git's behavior
Instructor
Dan has supported Johnson Space Center (JSC) since 2009 developing various software and simulation products in support of the International Space Station (ISS), Boeing Commercial Crew (CST-100) and Orion Space Programs. In graduate school, his thesis work focused on optimizing low-thrust trajectories using evolutionary algorithms and trade space exploration. Dan's work has been presented at multiple AAS/AIAA Spaceflight Mechanics conferences and published in the Journal of Spacecraft and Rockets.
Dan's interests include building and teaching others about DevOps systems specifically within the simulation and engineering domain. He possesses an expert knowledge of the Git version control system and surrounding tool sets such as GitLab and Jenkins.