Git益智游戏 - 解决'否认非快进'的问题

时间:2014-02-25 21:21:44

标签: git elastic-beanstalk

在我的本地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 pushdenying non-fast-forward refs/head/master失败。我可以选择解决这个问题吗?

我的回购并不是很有条理,我想一劳永逸地重构它。

2 个答案:

答案 0 :(得分:2)

你被允许强制推动吗?

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

答案 1 :(得分:2)

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)