2016-07-29 59 views
0

Git让我疯狂。我分叉github回购并添加了一些更改,然后意识到我已经在主控之后的一些提交之上完成了我的更改。如何移动git origin/master

在我本地的回购副本中,我将master重置为upstream/master,然后樱桃挑选了这些更改。就像这样:

Git stuff

我的变化是“添加用于定向广告模式的支持”。正如你所看到的,我不小心在upstream/scheduling_policy而不是upstream/master之上做了它。

The problem is when I try and push this, I get this error: 

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags --set-upstream origin master:master 
Pushing to https://github.com/Timmmm/ble.git 
To https://github.com/Timmmm/ble.git 
... lots of [up to date]s ... 
= [up to date]  v2.5.2 -> v2.5.2 
= [up to date]  v2.6.0 -> v2.6.0 
= [up to date]  workingOldBootloader -> workingOldBootloader 
! [rejected]  master -> master (non-fast-forward) 

有人能告诉我完全直观的命令,我需要使它成为origin/master分支移动到我的本地master分支?

回答

0

啊我觉得对于神秘的错误的原因“非快进”是Git是担心我会输掉origin/master提交如果我移动它,因为没有其他分支指出这一点。

通知Git是你真正想要的是用力推:

git push -f 

可惜这isn't implemented in SourceTree的原因,没有人甚至试图解释(它的“危险”,“始终是一个错误”,并“不是你想要的”)。

1

尝试merge分支产地/主

+0

没有,根本没有工作。它只是把三个紫色提交到我的本地主人(我不想),而'origin/master'留在原来的位置。我如何撤消这个? git甚至可以撤消吗? – Timmmm

+0

Ah nm我设法通过将'master'重置为之前的提交来解除它。 – Timmmm

+0

为什么你不想合并,如果改变是在你的起源/主人相同,你已经让他们在你的本地主?您可以合并然后解决任何合并冲突,以确保您的更改是正确的。 – cpalinckx