解决`拒绝非

在我的本地git仓库中,我主要有:

* commit A
|
* commit B (master) (origin/master)

我做了一些改变,现在是:

* commit A
|
| * commit B (develop) (origin/master)
|
* commit C (master)

我希望Git repo(托管在beanstalkapp.com上)能够更新以反映这一点,并且看起来像:

* commit A
|
| * commit B (develop) (origin/develop)
|
* commit C (master) (origin/master)

我怎样才能做到这一点? git push失败, denying non-fast-forward refs/head/master 。 我有什么选择来解决这个问题?

我的回购并不是非常有组织,我想重复它的一劳永逸。


你被允许进行强制推送吗?

否则,您是否允许删除分支? 在这种情况下,您可以删除旧分支并推送新分支,这与强制推送基本相同。


git checkout master
git merge origin/master strategy=ours
git push origin master

“我们的”策略忽略了提交AB之间所做的所有更改,并进行“假”合并(仅限名义合并)。 git push然后高兴地在旧的origin/master和新的master之间进行一个快速前进的提交。

结果:

* commit A
|
| * commit B (develop)
| |
* | commit C
| /
* commit D, but identical to C (master) (origin/master)
链接地址: http://www.djcxy.com/p/49039.html

上一篇: Working around `denying non

下一篇: Collapsing a Group of Commits into One on Git