2015-04-30 72 views
1

我们有一个使用两个git存储库的项目。一个是只读的(我们称之为A),我们完全控制另一个(我们称之为B)。摆脱重复的主分支

现在,我的同事在我们的B存储库中创建了一个新的“master”分支,但是一个存储库已经有一个“master”分支(当时他没有连接到A存储库,所以这可能是原因)。这大大混淆了我的本地git工具(实际上它也与B回购混淆)。

现在我们有这样的事情(基于源代码树图):

      B/master 
          \ 
    B/my-branch1   /- 13 -\ 
     \    /  \ 
     7 - 8 - 9 - 10 - 11 - 12 - 14 - 15 
    /
1 - 2 - 3 - 4 - 5 - 6 - master 
         \ 
         16 - 17 - 18 - 19 
        /
        B/my-branch2 

我需要这个B /主走开。

我试图删除远程“主”分支,但我不能。很可能远程B仓库仍然需要它的“主”分支(可能应该在修订版6)。我也尝试重置“主”分支,但是本地工具对于它是哪个分支感到困惑。当我直接检查我的远程存储库时,“master”分支包含修订1,2,7,8,9,10,11,13。我的本地git工具将主分支识别为1,2,3,4,5,6,B/master作为分离分支。

我可以远程修复此混乱,如果不是,我需要在本地执行什么操作,以及需要在远程存储库中修复此问题?

+0

当您尝试删除远程'master'分支时,您使用了什么命令?你得到了什么错误? –

+0

@RichardHansen我不记得确切的命令,但我一定是在正确的轨道上,因为我得到了“默认情况下,删除当前分支被拒绝...”或其他。我最终重新创建了回购解决方案来解决我的问题,但现在我可以看到有什么可以帮助我解决问题。事实证明,我应该删除“B /主”,同时保留它作为遥控头(不可能发声)。通常,在删除主分支之前应该切换主题,但回购的Web界面需要将主题设置为主控。这种情况只发生在服务器上的新鲜回购。 – jahu

回答

0

这当然不是最好的解决方案,但我解决了我的问题,通过断开项目副本,修复坏分支并将其推入新的回购协议。

我不得不这样做,因为我有限制访问远程回购(必须通过支持来完成所有任务),并且出于某种原因,远程服务器需要将Head设置为“master”(如果它是设置为别的东西,回购网页界面打破了,尽管回购似乎正常)。这实际上无法删除“主”分支。有趣的是,新鲜的回购没有“主”分支,但“主”设置为头(所以对我的问题的更好的解决方案需要以某种方式重新创建此状态)。

恐怕这些可能是特定于我的回购服务器提供商的怪癖。