ddfc41abb1
Most of the bulleted and numbered list in the error documentation were incorrectly formatted. Change-Id: Ib3ef44427c97dd8ed68b28414d477df372330a54 Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
60 lines
2.5 KiB
Plaintext
60 lines
2.5 KiB
Plaintext
non-fast forward
|
|
================
|
|
|
|
With this error message Git 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 is by
|
|
default not allowing 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 as 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]
|