openstack-manuals/doc/contributor-guide/source/additional-git-workflow/rebase.rst
Petr Kovar 0229b5d518 [contributor] Fix rebase procedure
Running `git commit` before `git rebase --continue` is unnecessary
when rebasing.

Change-Id: I903ecfac7c7cc75d5a43fa665866589ae7373428
2016-08-25 16:40:23 +02:00

81 lines
1.6 KiB
ReStructuredText

.. _git-rebase:
Resolving merge conflicts
~~~~~~~~~~~~~~~~~~~~~~~~~
If the change that you submitted has a merge conflict,
you need to manually resolve it using :command:`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.
#. You submit a change.
#. Somebody else submits a change and that change merges.
Now your change has a merge conflict.
#. Update your local repository:
.. code-block:: console
$ git remote update
$ git pull --ff-only origin master
#. Download your change:
.. code-block:: console
$ git review -d $PARENT_CHANGE_NUMBER
#. Rebase your change:
.. code-block:: console
$ git rebase origin/master
#. Resolve conflicts manually:
Conflicts are marked in a file with clear line breaks:
.. code-block:: console
<<<<<<< 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.
#. Add the files to the stage:
.. code-block:: console
$ git add $FILENAME
#. Complete the rebase process:
.. code-block:: console
$ git rebase --continue
#. Send the rebased patch again for review:
.. code-block:: console
$ git review