Resolving merge conflicts

If the change that you submitted has a merge conflict, you need to manually resolve it using git rebase.

Rebasing is used to integrate changes from one branch into another to resolve conflicts when multiple commits happen on the same file.

Warning

Never do a rebase on public (master) branches.

  1. You submit a change.

  2. Somebody else submits a change and that change merges. Now your change has a merge conflict.

  3. Update your local repository:

    $ git remote update
    $ git pull --ff-only origin master
    
  4. Download your change:

    $ git review -d $PARENT_CHANGE_NUMBER
    
  5. Rebase your change:

    $ git rebase origin/master
    
  6. Resolve conflicts manually:

    Conflicts are marked in a file with clear line breaks:

    <<<<<<< HEAD
    Second line.
    =======
    Third line.
    >>>>>>> feature/topic branch.
    

    <<<<<<<: Indicates the start of the lines that had a merge conflict.

    =======: Indicates separation of the two conflicting changes.

    >>>>>>>: Indicates the end of the lines that had a merge conflict.

    You need to resolve a conflict by manually editing the file. You also need to delete the ‘<<<<<<<’, ‘=======’, and’>>>>>>>’ in the file.

  7. Add the files to the stage:

    $ git add $FILENAME
    
  8. Complete the rebase process:

    $ git rebase --continue
    
  9. Send the rebased patch again for review:

    $ git review