In my local git repository, I had essentially:
* commit A
|
* commit B (master) (origin/master)
I made some changes so it is now:
* commit A
|\
| * commit B (develop) (origin/master)
|
* commit C (master)
I would like the Git repo (hosted on beanstalkapp.com) to be updated to reflect this, and look like:
* commit A
|\
| * commit B (develop) (origin/develop)
|
* commit C (master) (origin/master)
How can I do this? git push
fails with denying non-fast-forward refs/head/master
. What are my options to work around this?
My repo hasn't been very organized, and I'd like to refactor it once and for all.
The 'ours' strategy ignores all changes made between commit
A
andB
, and makes a "fake" merge (a merge in name only).git push
then happily does a fast-forward commit between the oldorigin/master
and the newmaster
.The result:
Are you allowed to do a forced push?
Otherwise are you allowed to delete a branch? In that case you can just delete the old branch and push the new one, which is essentially the same as a forced push.