Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Welcome! Let's resolve a conflict #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

github-learning-lab[bot]
Copy link

Welcome to Managing Merge Conflicts 🎉

Hello, and welcome! If you're here to learn about and practice resolving merge conflicts, you're in the right place.

In this course, you'll learn why merge conflicts happen and solve a few of them. The merge conflicts in this course are simple enough to solve from GitHub.com. But, if you'd prefer, you can solve them using the command line or other local tools.

As an added bonus, the project we are using for this course is a resume hosted on GitHub Pages! So, if you want to keep working after you complete this course, please feel free!

Before starting this course, we recommend completing the Introduction to GitHub Learning Lab first.

Note: You may notice that some branches and pull requests already exist. We'll be using them in later activities in this course.

How merge conflicts happen

A Merge conflict occurs when changes are made to the same part of the same file on two different branches. You usually find out about conflicts in a pull request.

This can be intimidating, but have no fear, Git knows how to handle this! It only needs a human to decide how to resolve the conflict.

Step 1: Resolve a simple conflict

You may merge a lot of pull requests before you encounter your first merge conflict. That’s because Git is smart when it comes to merging. Unless you're paying close attention to other branches, you won't know about conflicts until you create a pull request.

This branch is a great example. In this scenario, two of our friends have been working in this repository. They both created branches, made changes to the _config.yml file, and opened pull requests. One pull request was merged to master without problems, but now the other pull request has a conflict.

The history of master and this branch look something like this:

deviated branches

Because this pull request changes the same lines in the _config.yml file, there is a merge conflict.

Let's help our friends resolve this conflict.

⌨️ Activity: Resolving your first merge conflict

  1. At the bottom of the page in the "This branch has conflicts that must be resolved" section of the Pull Request, click the Resolve conflicts button.

  2. Look for the highlighted sections that begins with <<<<<<< update-config and ends with >>>>>>> master. These markers are added by Git to show you the content that is in conflict.

  3. Remove the changes made on the master branch by deleting all of the content below the ======= and above >>>>>>> master.

  4. Next, remove the merge conflict markers by deleting the following lines:

    <<<<<<< update-config
    =======
     >>>>>>> master
    
  5. With the merge conflict markers removed, click Mark as resolved.

  6. Finally, click Commit merge.

Sometimes, the best way to resolve a merge conflict is to add content that's from both branches, or even something that isn't on either! This is why Git needs a human to look at the code and make the proper fixes.


Watch below for my response.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant