We may earn an affiliate commission when you visit our partners.
Course image
Jason Taylor and John Myers

Git Going with Comparing, Branching and Merging

Are you sure how to compare between commits, branches or the three states of Git? Do merges cause you trouble? What is a rebase, anyway?

Read more

Git Going with Comparing, Branching and Merging

Are you sure how to compare between commits, branches or the three states of Git? Do merges cause you trouble? What is a rebase, anyway?

In this course, students will walk though comparing (diffs), branching, merging and rebasing in Git. At the end of this course, students will have a firm understanding and experience with those paricular aspects of Git. Note: This is not a comprehensive course on Git we focus exclusively on comparing, branching, merging, and rebasing.

Recent Course Updates

  • October 17: Added Updates and Errata section

Course Outline

Course Introduction and Overview provides an introduction to this course.

After the introduction, the first thing we do is Git Installation for both Windows and Mac. There are dedicated sections for Windows and Mac so students can jump directly to the lectures specifically designed for their system. After the installation process, we will download the example project repository from GitHub (clone) which we will use throughout the course.

After installation and downloading the example project, we explore ways to make Comparisons in Git, including all the different local states, between commits, and between local and remote repositories.

We give great attending to Branching and Merging in Git. We start off with the simple "happy path" and learn about "Fast-Forward" merges and how to control them. The we walk through common "automatic" merges. Finally, we cause trouble on purpose so we can step through resolving conflicting merges with our visual merge tool.

With a strong foundation in branching and merging, we will then cover a more complex topic, Rebasing. In that section, we cover several rebasing examples, including how to resolve a rebase conflict.

All tools have installation and configuration sections to ensure no one is left behind.

Course Features

Presentations provide audio/video training of conceptual ideas. Since few like slide-ware presentations, slide-presentations are kept to a minimum.

Screencasts provide a video of the instructor's computer system with any actions, commands, or screens displayed and narrated. There is nearly 2 hours of screencast based video training in order to step through each command or action in sufficient detail.

Special Notes

This course is part of the "Git Going" series and is included with the Git Complete comprehensive course. If you are already enrolled in that course, do not enroll in this course.

This course makes extensive use of the command line. Each command is discussed in detail, so everyone can follow along.

Enroll now

What's inside

Learning objectives

  • Install git and related tools, specifically for comparing and merging
  • Compare (diff) between various parts within git (branches, commits, and more)
  • Create, manage, and delete branches
  • Merge branches and resolve conflicts
  • Rebase branches and resolve conflicts

Syllabus

Students will learn about the purpose of this course

An overview of the topics covered in this course, including branching, merging, and resolving conflicts in Git.

Read more
All tools installed for this course

A guide to what software is going to be installed in this section for this course.

A guide to installing and setting up the source management tool Git for Windows.

A guide to installing the text editor Notepad++.

A guide to configuring Notepad++ to work better for this course.

A guide to installing the merge tool P4Merge.

A guide to configuring P4Merge on Windows.

An overview to the tools that will be installed in this section for this course.

A guide to getting the Apple provided version of the source control tool Git.

A guide to installing the text editor TextMate 2 on Mac OS.

A guide to configuring TextMate 2 to improve usability for the rest of this course.

A guide to installing the merge tool P4Merge on Mac OS.

A guide to configuring P4Merge on Mac OS.

Workspace setup and project repository on local system

Cloning the GitHub repository for this course onto your personal GitHub account and then downloading the repository onto your local system.

Various updates that might impact the course

GitHub recently changed the default branch name from "master" to "main" - which impacts the rest of this course.

Students will be able to compare differences in Git

Setting up our Git Repository in order to be able to do comparisons in later lessons.

Using P4Merge in order to compare our current GIt repository to the staged changes of our Git repository.

Comparing our current working directory in Git to the last commit on the Git repository.

Comparing our Git staging area to the last commit on the Git repository.

Limiting a comparison to a single file to focus in on what changes were made to just that file.

Comparing any arbitrary commit to another arbitrary commit in Git.

Comparing commits between our local Git repository and our remote GitHub repository, in order to help with pulling down changes that may conflict.

Pushing our changes up to GitHub now that we have verified the changes, as well as general cleanup for this section.

Students will be able to branch and merge in Git

An overview of the basic branching techniques that will be covered in this section by creating our first branch on Git that isn't our Master branch.

Merging branches in the easiest way possible, in which the changes can be smoothly integrated with no issues.

Disabling the easy path to merging in order to complicate the merge history when needed.

Creating a slightly more complicated merge, in which changes from both branches can automatically be integrated in with each other.

Resolving conflicts that arise when the same code is changed in two different branches in our Git repository.

Cleaning up what we have done in this section and pushing those changes back up to our remote GitHub repository.

Students will be able to perform standard rebases in Git

A guide to basic rebaseing within Git, in which we will take two branches with different changes to create a cohesive linear commit history.

Setting up a conflict that will make our rebase process a bit more complex.

Aborting a Git rebase in case that isn't what is wanted.

Resolving merge conflicts in order to allow our rebase to continue.

Rebasing our local repository with our remote repository in order to create a linear history path between the two.

Cleaning up our repository after we are finished rebasing and pushing up those changes to our remote GitHub repository.

Various updates, notes and errata is published here.

A guide to resolving the issue of Git not working after upgrading to a new version of Mac OS.

Review and final thoughts

An review of the topics we covered in this course, including branching, merging, and resolving conflicts in Git.

Bonus: Exclusive Student Discounts

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches Git's comparing, branching, merging, and rebasing—core skills needed for collaborating with others
Strong focus on technical skills needed for working with Git, which is essential for software development
Suitable for students with beginner to intermediate experience with Git, but prior coding experience is recommended
Led by experienced instructors with expertise in software development, including Git
Provides a mix of presentations, screencasts, and hands-on labs for a more engaging learning experience
Course is part of a series on Git, indicating a comprehensive approach to the topic

Save this course

Save Git Going with Comparing, Branching and Merging to your list so you can find it easily later:
Save

Reviews summary

Well paced course for git users

Learners say this course is well paced and effective at taking them from beginner to an understanding of key concepts of Git. Though some of the training materials are Mac-centric, the course is largely accessible to Linux users as well.
Effective for Git Beginners
"I thought the course was well paced and got from me from a git user of only a few commands to understanding a few of the concepts"
"Although I think it would be a very dry subject, I'd like to understand how it all works under-the-covers now."
"Good course :-)"
Mac Focused Materials
"The course is MAC focused but its not a huge challenge to do everything from Linux, but a bit of help with vimdiff would be good.... (there are heaps of guides online of course).."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Git Going with Comparing, Branching and Merging with these activities:
Compile and review course materials on Git branching and merging
This activity will help you review and reinforce the concepts of Git branching and merging by compiling and reviewing your course materials.
Show steps
  • Gather your course materials on Git branching and merging
  • Review the materials
  • Summarize the key concepts
Follow a guided tutorial on Git branching and merging
This activity will help you learn the basics of Git branching and merging through a guided tutorial, which can be a great way to get started.
Show steps
  • Find a guided tutorial on Git branching and merging
  • Follow the steps in the tutorial
  • Try out the commands on your own
Practice branching and merging using Git commands
This activity will help you practice the fundamental Git commands for branching and merging, which are essential skills for collaborating on software projects.
Show steps
  • Create a new Git repository
  • Create a new branch
  • Make some changes to the code on the new branch
  • Merge the changes back into the main branch
  • Resolve any merge conflicts that arise
One other activity
Expand to see all activities and additional details
Show all four activities
Attend a peer session on Git branching and merging
This activity will help you learn from and collaborate with other students on Git branching and merging, which can be a great way to reinforce your understanding.
Show steps
  • Find a peer session on Git branching and merging
  • Attend the session
  • Participate in the discussion

Career center

Learners who complete Git Going with Comparing, Branching and Merging will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers apply engineering principles to the design, development, deployment, and maintenance of software systems. This course on Git Going with Comparing, Branching and Merging provides a foundation in the fundamental skills needed for this role. Software Developers use Git to track changes to their code and collaborate with others, and this course provides hands-on experience with these essential tasks.
Software Engineer
Software Engineers design, build, and manage computer software applications. This course on Git Going with Comparing, Branching and Merging provides a foundation in the fundamental skills needed for this role. Software Engineers use Git to track changes to their code and collaborate with others, and this course provides hands-on experience with these essential tasks.
Web Developer
Web Developers design and develop websites and web applications. This course on Git Going with Comparing, Branching and Merging provides a foundation in the fundamental skills needed for this role. Web Developers use Git to track changes to their code and collaborate with others, and this course provides hands-on experience with these essential tasks.
Data Engineer
Data Engineers design, build, and maintain data pipelines and databases. This course on Git Going with Comparing, Branching and Merging provides a foundation in the fundamental skills needed for this role. Data Engineers use Git to track changes to their code and collaborate with others, and this course provides hands-on experience with these essential tasks.
DevOps Engineer
DevOps Engineers work to bridge the gap between software development and IT operations. This course on Git Going with Comparing, Branching and Merging provides a foundation in the fundamental skills needed for this role. DevOps Engineers use Git to track changes to their code and collaborate with others, and this course provides hands-on experience with these essential tasks.
Technical Writer
Technical Writers create and maintain technical documentation, such as user manuals, white papers, and training materials. This course on Git Going with Comparing, Branching and Merging may be useful for Technical Writers who need to track changes to their documentation and collaborate with others.
Systems Analyst
Systems Analysts design and implement computer systems. This course on Git Going with Comparing, Branching and Merging may be useful for Systems Analysts who need to track changes to their system designs and collaborate with others.
Computer Support Specialist
Computer Support Specialists provide technical support to users of computer systems. This course on Git Going with Comparing, Branching and Merging may be useful for Computer Support Specialists who need to track changes to their support procedures and collaborate with others.
Computer Programmer
Computer Programmers write and maintain computer programs. This course on Git Going with Comparing, Branching and Merging may be useful for Computer Programmers who need to track changes to their code and collaborate with others.
Project Manager
Project Managers are responsible for planning, executing, and closing projects. This course on Git Going with Comparing, Branching and Merging may be useful for Project Managers who need to track changes to their project plans and collaborate with others.
Quality Assurance Analyst
Quality Assurance Analysts test and evaluate software to ensure that it meets quality standards. This course on Git Going with Comparing, Branching and Merging may be useful for Quality Assurance Analysts who need to track changes to their test plans and collaborate with others.
Database Administrator
Database Administrators design, implement, and maintain databases. This course on Git Going with Comparing, Branching and Merging may be useful for Database Administrators who need to track changes to their database designs and collaborate with others.
Network Administrator
Network Administrators design, implement, and maintain computer networks. This course on Git Going with Comparing, Branching and Merging may be useful for Network Administrators who need to track changes to their network designs and collaborate with others.
Information Security Analyst
Information Security Analysts protect computer systems from unauthorized access, use, disclosure, disruption, modification, or destruction. This course on Git Going with Comparing, Branching and Merging may be useful for Information Security Analysts who need to track changes to their security policies and collaborate with others.
Product Manager
Product Managers are responsible for the planning, development, and launch of new products. This course on Git Going with Comparing, Branching and Merging may be useful for Product Managers who need to track changes to their product requirements and collaborate with others.

Reading list

We've selected seven books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Git Going with Comparing, Branching and Merging.
Concise guide to Git. It covers all the essential Git commands and concepts. It great resource for anyone who wants to learn the basics of Git.
Practical guide to using Git. It covers all the basics of Git, as well as more advanced topics such as branching, merging, and rebasing. This book great resource for anyone who wants to learn more about Git.
Practical guide to using Git for version control. It covers all the basics of Git, including installation, configuration, branching, merging, and rebasing. It also covers more advanced topics, such as using Git with a team and using Git for more complex projects.
Quick reference guide to Git. It covers all the basic Git commands, as well as more advanced topics such as branching, merging, and rebasing. This book great resource for anyone who wants to learn more about Git.
Practical guide to using Git for version control. It covers all the basics of Git, including installation, configuration, branching, merging, and rebasing. It also covers more advanced topics, such as using Git with a team and using Git for more complex projects.
Guide to using Git for software developers. It covers all the basics of Git, as well as more advanced topics such as branching, merging, and rebasing. This book great resource for anyone who wants to learn more about Git.
Guide to using Git for everyone. It covers all the basics of Git, as well as more advanced topics such as branching, merging, and rebasing. This book great resource for anyone who wants to learn more about Git.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Git Going with Comparing, Branching and Merging.
Git Complete: The definitive, step-by-step guide to Git
Most relevant
The Git & Github Bootcamp
Most relevant
Branching and Merging in Git
Most relevant
Git for Windows: Step-By-Step Mastery using Commands and...
Most relevant
Git and GitHub Basics
Most relevant
Getting Started with Git and GitHub
Most relevant
Git for Distributed Software Development
Most relevant
Git Branching and Merging
Most relevant
Learn Git by Doing: A step-by-step guide to version...
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser