Working around `denying non
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.
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.
git checkout master
git merge origin/master strategy=ours
git push origin master
The 'ours' strategy ignores all changes made between commit A
and B
, and makes a "fake" merge (a merge in name only). git push
then happily does a fast-forward commit between the old origin/master
and the new master
.
The result:
* commit A
|
| * commit B (develop)
| |
* | commit C
| /
* commit D, but identical to C (master) (origin/master)
链接地址: http://www.djcxy.com/p/49040.html
上一篇: 详细的原因为什么远程git rebase是如此邪恶
下一篇: 解决`拒绝非