Git prevents pushing after amending a commit
Solution 1
This should only be the case if you're amending an already-pushed commit. Generally you should never do that as you're then modifying published history. In your case however, you should be able to get away with push -f
, which will overwrite the remote commit with your amended revision.
Solution 2
Yup, you should not do that (pushing a commit, then changing it and trying to push it again).
Instead, you can roll back Git to your previous commit without changing the files, then creating a new commit:
git reset --mixed origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be an amendmend"
git push origin master
this will create a new commit with the changes you were about to amend.
Solution 3
you amended the pulled commit as in
git pull origin master
git commit -a --amend -m "..."
git push
you can solve the issue by reverting the amended commit:
git reset --mixed origin/master
and then making it again as a full fledged commit
kiri
♫ I'd love to change the world But I don't know what to do So I'll leave it up to you ♫
Updated on October 03, 2020Comments
-
kiri over 3 years
Usually, I just run
git add file git commit git push
but if I amend the commit before pushing it (with
git commit --amend
), the next push fails withhint: 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.
How can I let git push the changes without merging branches? I only have one branch (
master
) and I'm the only person using this repo so why is it saying this?git branch -a:
* master remotes/origin/HEAD -> origin/master remotes/origin/master
EDIT: Using
gitk HEAD @{u}
, I see that I have 2 branches, one with the original commit and another with the amended commit.