【问题标题】:Git remote two branches same name different caseGit远程两个分支同名不同大小写
【发布时间】:2015-08-04 16:33:27
【问题描述】:
origin/joetest
origin/JoeTest

我有一个问题,我在 git 中有两个远程分支,它们的名称相同,大小写不同。

我无法确定在 Visual Studio Online 中的待办事项我可以看到差异,但由于冲突而无法合并它们。

Visual Studio 和 git bash 中的 git 工具无法区分这两种情况,而处理它们的人现在已经关闭同步,其中一些提交,另一些提交。

对我们能做什么有什么想法吗?

谢谢

【问题讨论】:

    标签: git bash


    【解决方案1】:

    在具有区分大小写文件系统的操作系统上克隆存储库,例如Linux,然后重命名其中一个分支,推送它,然后删除旧分支:

    git clone <url> repo
    cd repo
    git checkout -b joetest2 origin/JoeTest
    git push origin joetest2:joetest2
    git push origin :JoeTest
    

    至于为什么 Git 会遇到不同大小写的分支名称问题,请参阅 this related question

    【讨论】:

    • 感谢任何机会,如果我无法访问区分大小写的文件系统...我们都在这里使用 Windows...
    • 你可以在虚拟机中启动一个小型 Linux 来解决这个问题;但是让我尝试复制这个问题,我会看看你是否可以单独在 Windows 中解决它。
    • 告诉你我会下载什么umbuto不想让你为我卖命!!
    • 哈哈,好吧 ;) 虽然……我现在确实在 Windows 上尝试过。如果你从一个新的克隆开始,上面的命令应该是一样的;至少它刚刚对我有用:)
    • 要删除旧分支而无需创建新克隆或使用区分大小写的文件系统,您还可以导航到.git\refs\remotes\origin 目录并临时更改文件夹名称大小写以匹配@987654324 @ 或 JoeTest 要删除的变体。
    【解决方案2】:

    我刚刚发现了一些魔法,它可以在 Windows 下运行。我有两个目录

    XUnitRemoteXunitRemote

    我做了以下

     git mv XunitRemote XUnitRemote.todo
     git mv XUnitRemote.todo XUnitRemote
    

    并且效果很好

    【讨论】:

    • git mv 适用于文件/目录。这个问题是关于分支的。
    • 你是对的。我一直在寻找我的解决方案,但偶然发现并误读了它。
    猜你喜欢
    • 1970-01-01
    • 2013-03-24
    • 2015-10-16
    • 2016-11-24
    • 2012-04-06
    • 2013-05-23
    • 1970-01-01
    • 2016-05-15
    • 2015-04-20
    相关资源
    最近更新 更多