git - 无法推送到新的存储库 : The folder pushed differ in case

标签 git azure tfs

在深入讨论这个问题之前,先介绍一下背景:

几个月前,我的团队将我们的存储库从 Team Foundation Server 迁移到 Azure DevOps。 上周,我们注意到 TFS 上的一个分支已经完成了现在需要的工作。因此,我们决定将该分支引入 Azure,以避免再次执行上述工作。

我从我的计算机上的 TFS 克隆了存储库,更改源 URL 以匹配 Azure 的 URL,然后尝试按照以下步骤推送分支:

  1. 从 TFS 克隆
  2. 从我感兴趣的分支创建一个新分支
  3. 添加远程源(称为 origin-azure)
  4. 添加虚拟文件并提交更改
  5. 将分支推送到 origin-azure

它给了我以下错误消息:

错误:远程解包失败:错误树对象 1234 被拒绝:文件夹“myfolder”和推送的文件夹“MyFolder”大小写不同。您必须删除或重命名其中之一或禁用大小写强制(请参阅 https://aka.ms/git-platform-compat)。到 https://urlOfRepoOnAzure ! [远程拒绝] ExportBranche -> ExportBranche(树对象 5678 被拒绝:推送的文件夹“myfolder”和文件夹“MyFolder”大小写不同。您必须删除或重命名其中一个或禁用大小写强制执行(请参阅 https:///aka.ms/git-platform-compat).) 错误:无法将一些引用推送到 https://urlOfRepoOnAzure

我删除了文件夹“myfolder”并重试。同样的错误。 但我可以毫无问题地推送到 TFS。

我不明白发生了什么事。特别是为什么推送到 Azure 被拒绝,因为我正在推送一个新分支。

最佳答案

我同意 @BernardoDuarte 的观点,即您应该能够更改有关案件执行的政策,但如果它不起作用,我会尝试通过进行更多手动更新来摆脱整个冲突:

  1. 将 TFS 存储库克隆到一个全新的文件夹中
  2. 查看您想要从中迁移的分支 (A)
  3. 将 Azure DevOps 存储库克隆到不同的全新文件夹中
  4. 创建主题分支 (B)
  5. 将除 myFolder 之外的所有文件夹从 (A) 复制到 (B)
  6. 打开 (A) 中的 myFolder,并将其所有内容复制到 (B) 中的 myFolder
  7. (B) 中的
  8. git status,以确保 myFolder 的文件夹大小写与 Azure DevOps 存储库中的文件夹大小写相同。
  9. 提交您的主题分支并将其推送到 (B)
  10. 在 Azure DevOps 中 pull 您的主题分支请求,然后完成它。

如果您覆盖 myFolder 本身,Git 会将其作为更改进行跟踪并尝试推送它。这种方法虽然确实很笨拙,但却可以防止这种变化发生,并且应该绕过这个问题。

关于git - 无法推送到新的存储库 : The folder pushed differ in case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66157287/

相关文章:

git - 恢复到旧提交后,我无法返回到最近的提交

Git:在 merge 提交上保留分支拓扑

powershell - 无法在 ARM 模式下将 Azure DSC 扩展添加到 VM

javascript - 向 Azure Blob 存储 [REST API][Azure Blob 存储] 发出 GET 请求时授权失败

azure - B2C : Redirect to "sign-up" flow of a "Sign-up or Sign-in" policy

visual-studio - 如何将已删除的常规目录转换为TFS中的分支?

TFS 构建-部署

git - 如何测试git pull的结果?

version-control - 在 TFS 源代码管理中移动多个文件