This is what happens:
git commit --amend
and leave the same commit message as HEADgit push
And now I get
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 1 different commit each, respectively.
(use "git pull" to merge the remote branch into yours)
nothing to commit, working directory clean
I want to understand:
You changed an existing pushed commit, creating your own version (since its content has changed)
--x---Y (master: that is the X amended)
\
--X (origin/master)
That is why you have 1 and 1 different commit each between master and origin/master
What can I do to prevent this?
Don't "amend" an existing pushed commit (only local not-yet-pushed one)
How do I reconcile master with local after a git amend?
Simply rebase on top of origin/master, then push
git rebase origin/master
--x--X---Y' (master)
|
(origin/master)
git push
--x--X---Y' (master, origin/master)
However, jwinn notes in the comments that it can mean your amend goes away ("warning: skipped previously applied commit
"), and would not be the way to get your local amend (on an already pushed commit) to origin/master
.