Search code examples
gitpushgit-amend

git --amend --no-edit rejected push


Today I discovered the --no-edit for the --amend. However, it leads me to the following problem. Here the steps:

  • git clone
  • did some changes to the code
  • git add .
  • git commit --amend --no-edit
  • git push origin master

    ! [rejected]        master -> master (non-fast-forward)
    error: failed to push some refs to 'https://me@bitbucket.org/myRepo.git'
    hint: Updates were rejected because the tip of your current branch is behind
    hint: its remote counterpart. Integrate the remote changes (e.g.
    hint: 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    

Why?

Note: I'm the only one which works on that repo.


Solution

  • Amending the last commit rewrites history. If that's what you want to do, you can do that with git push --force.

    The reason it tells you you're behind is because the last commit that exists both locally and remotely (aka "merge base") is the tip's parent. In that regard, you're one commit behind the remote, which already has a commit on top of the aforementioned merge base.