Cannot merge in Gerrit

Try rebase button, which can solve most cannot-merge issues. If it can find the proper commit to rebase onto by itself, it's okay. If it cannot, find the last commit of the target branch and fill in the commit blank. Sometimes you should first submit the commit, on which the cannot-merge one has dependency. If it cannot work anyhow, just abandon it and make the commit based on the latest commit.


You do NOT need to abandon the current change on Gerrit to solve the "cannot merge" issue. All you need to do is:

  1. Update your local repository (git fetch)
  2. Run a manual rebase (git rebase)
  3. Resolve the conflicts (git mergetool, git rebase --continue)
  4. Commit (amend) the result (git commit --amend)
  5. Push a new patchset to Gerrit (git push)

The best practice when working on a shared code base using git/gerrit is to keep individual changes as small as possible. Instead of submitting your change in a single larger commit, split it into a series of smaller commits (submit the branch to gerrit) that have one logical change per commit. This workflow:

  • reduces the chance of conflict in a single change
  • makes conflicts easier and quicker to resolve
  • make the change quicker to review

This way, the chance that someone merges his changes before you lowers. You should rebase as soon as possible so that the changes can be reviewed more easily. Rebasing regularly against the upstream branch means you keep up-to-date with changes, and don't have to deal with a large merge conflict (you get smaller, more manageable issues to resolve).

I'm not sure this answers your question but I follow these two rules and have no problems.