|  | non-fast forward | 
|  | ================ | 
|  |  | 
|  | With this error message Gerrit rejects a push if the remote branch can't | 
|  | be fast forwarded onto the pushed commit. This is the case if the | 
|  | pushed commit is not based on the current tip of the remote branch. | 
|  |  | 
|  | If a non-fast forward update would be done, all commits from the | 
|  | remote branch that succeed the base commit of the pushed commit would | 
|  | be removed. This would be especially confusing for other users that | 
|  | have based their work on such a commit. Because of this Git by | 
|  | default does not allow non-fast forward updates. | 
|  |  | 
|  | When working with Gerrit, this error can only occur if | 
|  | link:user-upload.html#bypass_review[code review is bypassed]. | 
|  |  | 
|  | There are different reasons why this error can occur: | 
|  |  | 
|  | . the remote branch has evolved since you started your development | 
|  | . you are pushing the commit to the wrong project | 
|  |  | 
|  |  | 
|  | the remote branch has evolved since you started your development | 
|  | ---------------------------------------------------------------- | 
|  |  | 
|  | You start your development based on the current tip of the remote | 
|  | branch. While you implement your feature / bug-fix, a change in Gerrit | 
|  | gets submitted (or another user directly pushes a commit) so that the | 
|  | remote branch evolves. If you are now pushing your commit, with | 
|  | bypassing code review, your push will be rejected with the error | 
|  | message 'non-fast forward'. To solve the problem you have to either | 
|  |  | 
|  | . link:http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html[rebase] your commit on the new tip of the remote branch or | 
|  | . link:http://www.kernel.org/pub/software/scm/git/docs/git-merge.html[merge] your commit with the new tip of the remote branch. | 
|  |  | 
|  | Afterwards the push should be successful. | 
|  |  | 
|  |  | 
|  | you are pushing the commit to the wrong project | 
|  | ----------------------------------------------- | 
|  |  | 
|  | If you do a commit in one project and then accidentally push this | 
|  | commit, with bypassing code review, to another project, this will fail | 
|  | with the error message 'non-fast forward'. To fix the problem you | 
|  | should check the push specification and verify that you are pushing | 
|  | the commit to the correct project. | 
|  |  | 
|  |  | 
|  | Although it is considered bad practice, it is possible to allow | 
|  | non-fast forward updates with Git. For this the remote Git repository | 
|  | has to be configured to not deny non-fast forward updates (set the | 
|  | link:http://www.kernel.org/pub/software/scm/git/docs/git-config.html[Git configuration] parameter 'receive.denyNonFastForwards' to | 
|  | 'false'). Then it is possible to push a non-fast forward update by | 
|  | using the '--force' option. | 
|  |  | 
|  |  | 
|  | GERRIT | 
|  | ------ | 
|  | Part of link:error-messages.html[Gerrit Error Messages] | 
|  |  | 
|  | SEARCHBOX | 
|  | --------- |