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?

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
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

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.

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

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

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.

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.

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.

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

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

Traffic lights

Read about what's good
what should give you pause
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

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Git branching, merging, and rebasing deep dive

According to learners, this course provides a highly focused and practical dive into some of Git's more complex operations. Students say it clarifies challenging topics like comparing states, branching strategies, resolving merge conflicts, and understanding rebasing. The course uses a command-line approach, which many find effective for building a strong understanding. While the course is not comprehensive Git training, students appreciate its specific focus, finding the hands-on examples and screencasts particularly valuable for solidifying their learning.
Instructor provides relevant course updates.
"Noticed the instructor added notes about recent changes like GitHub's default branch name, which is helpful."
"The updates section shows the course is being maintained and addresses potential issues."
"Good to see the instructor keeps the content current with errata and notes."
"Updates regarding OS compatibility issues were a plus."
Includes setup for necessary external tools.
"The sections on installing and configuring external tools like P4Merge were very useful."
"Having the guides for setting up text editors and merge tools integrated saved a lot of time."
"Appreciated the specific instructions for both Windows and Mac environments."
"The tool setup ensured everyone could follow the practical exercises."
Concepts explained well with practical demos.
"The instructor explains the concepts very clearly, breaking down complex ideas into manageable parts."
"Screencasts demonstrating the commands step-by-step were incredibly helpful for following along."
"The examples are well-chosen and illustrate the points effectively, especially for conflict resolution."
"Good pace and clear narration throughout the lectures and demos."
Strong emphasis on hands-on CLI practice.
"The course's focus on the command line is excellent. It forces you to understand what's happening under the hood."
"I appreciated learning the core commands directly, rather than relying solely on GUI tools."
"Using the command line extensively made the concepts stick much better than theory alone."
"Getting comfortable with the Git CLI through these guided examples was a major plus."
Deep dive into complex Git operations.
"This course really helped me understand the complexities of merging and rebasing, especially conflict resolution."
"I finally feel comfortable tackling merge conflicts after this course. The examples were clear and practical."
"Understanding the nuances of diffs, merges, and rebases was my goal, and this course delivered exactly on that."
"It covers those specific Git areas that are often confusing but essential for teamwork."
Best for those with basic Git knowledge.
"While it covers setup, having some prior basic Git experience would make this course easier to follow."
"It jumps straight into specific operations, so absolute beginners might feel a bit lost initially."
"I recommend having gone through an introductory Git course first to get the most out of this."
"It’s not a ground-up Git course, it focuses tightly on the advertised topics, assuming you know the basics."

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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.

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

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser