SVN到Git转换-未推送到Bitbucket的分支

SVN到Git转换-未推送到Bitbucket的分支,git,svn,bitbucket,Git,Svn,Bitbucket,我是Git新手,在迁移我的SVN时遇到了一些问题。我能够正确地转换成git回购协议,在本地机器上看起来不错。但是,当我将它推到bitbucket时,我只看到主节点,没有看到我的分支(我可以在本地git上看到) 我看到类似的东西 在我的本地计算机上: $git branch -vva * master remotes/branch1 remotes/branch2

我是Git新手,在迁移我的SVN时遇到了一些问题。我能够正确地转换成git回购协议,在本地机器上看起来不错。但是,当我将它推到bitbucket时,我只看到主节点,没有看到我的分支(我可以在本地git上看到)

我看到类似的东西

在我的本地计算机上:

$git branch -vva 
* master                                                               
  remotes/branch1
  remotes/branch2
Bitbucket仅显示此主节点,不显示分支

这些分支基本上可以在某个时候成为标记(大部分只是不再使用的代码的旧版本),但我希望它们仍然存在于git版本中


如何轻松地将本地拥有的推送到bitbucket

有两个可能的原因使您无法看到Bitbucket上的分支

  • 你的问题是重复的,如
  • 您的存储库中有您试图推送的远程跟踪分支
  • 如果是后者,您应该知道Git只将您的本地分支推到远程,而不是您的远程跟踪分支

    您的本地分支是git在您运行时打印的分支

    git branch      # show only local branches
    
    git branch -r   # show only remote tracking branches
    
    您的远程跟踪分支是git在运行时打印的分支

    git branch      # show only local branches
    
    git branch -r   # show only remote tracking branches
    
    但您运行的是显示本地和远程跟踪分支

    要使远程跟踪分支成为本地分支,可以运行

    git branch <local-branch-name> <remote-branch-name>
    
    但是,我觉得您的存储库比您提到的内容更多,因为
    remotes/branch1
    并不是分支名称的正确约定。。。我之所以这么说,是因为
    remotes
    关键字很特殊,在
    refs/remotes/
    中使用,这是所有远程跟踪分支的官方前缀

    您能否向我们提供
    git branch
    git branch-r
    命令的输出(为公共论坛进行了适当的编辑),并让我们知道您希望git将哪些分支推送到Bitbucket

    编辑:@DanielMoss评论中提到:

    分支和标记不会在您创建时导入到新的Git存储库中 可能会想到。在git中找不到任何SVN分支 分支输出,也不会在git标记中找到任何SVN标记 输出。但是,如果您运行git branch-r,您将找到所有的分支 和SVN存储库中的标记git svn clone命令导入 您的SVN分支为远程分支,并将您的SVN标记导入为 以标记为前缀的远程分支/


    您是否使用
    git push--all
    推送您的本地分支?否则,您只能推动您当前所在的分支机构。如果@Dekker的建议无效,您能否将
    git show refs
    的输出添加到您的问题中(为公共论坛进行了适当的编辑)?您是否介意更改问题的标题,以便更容易找到可能存在相同问题的人?我建议“SVN到Git转换-分支不推送到Bitbucket”或类似的东西。你是对的,我模拟了该函数的输出。最终,我的问题通过以下途径得到了解决:我运行了该指南底部引用的.jar,它将我的回购重组为我想要的更多内容。我相信你的解决方案是正确的,但是我有一堆远程分支,我需要使其成为本地分支。我今天也学到了一些东西,我不知道SVN import会这么做。