Made changes to a commit, performed commit amend. Do a push and I get the error:
! [remote rejected] master -> refs/for/master (no changes made)
git push origin master:refs/for/master
$ git remote show origin
* remote origin
Fetch URL: ssh://email@example.com:29418/myrepo
Push URL: ssh://firstname.lastname@example.org:29418/myrepo
HEAD branch: master
Local branch configured for 'git pull':
master rebases onto remote master
Local ref configured for 'git push':
master pushes to master (up to date)
This issue is due to the actions I'd performed previously. I was trying to
push a new change, on top of a change which was still up for review, who's parent also was up for review.
Trunk ------ Parent A ----- Parent B ----- New change (merged) (unmerged) (unmerged)
I had used
cherry-pick to obtain these two changes locally (Parent A and Parent B), and then a third
cherry-pick to get my change from a local branch before attempting to
push. That is what caused the issue, because my personal change was essentially trying to re-write history.
The correct process would be to only
pull Parent B when at trunk. This automatically pulls up any commits between trunk and it (in this case just Parent A). Then
cherry-pick my new change on top of that and
push will work fine.