| :linkattrs: | 
 | = 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,role=external,window=_blank] 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,role=external,window=_blank] 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,role=external,window=_blank] 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 | 
 | --------- |