位桶 'This pull request has conflicts' 但 git 本地状态 'up-to-date'

Bit bucket 'This pull request has conflicts' but git locally states 'up-to-date'

当我向项目添加服务引用时,位存储桶遇到了一个非常奇怪的问题。总之,在添加服务引用后创建拉取请求时,我收到一条警告,突出显示 This pull request has conflicts.。所以我开始解决冲突,但是当 运行 执行适当的命令时,我得到通知说一切都是最新的。 git 是否有可能忽略了在位桶中拾取的某些文件?有没有人以前有过这方面的经验?

我会把它分解得更详细一些,重点介绍对我正在做的事情的逐步诊断:

  1. 将服务引用添加到项目
  2. 提交并推送更改
  3. 创建拉取请求
  4. 比特桶亮点存在冲突You must resolve the conflicts before you can merge
  5. 我运行以下命令,结果如下:

git fetch origin develop

git checkout feature/my-branch

git merge FETCH_HEAD

Already up-to-date

任何有关此问题的帮助将不胜感激,因为我似乎已经走到了死胡同!

编辑

我进一步缩小了范围,在添加引用时添加了许多 GenericObjectDataSource 文件,这些文件的文件名很长(以防万一有人知道位桶中的最大长度或 git).它们看起来如下,当我检查这些文件时,出现冲突消息:

<?xml version="1.0" encoding="utf-8"?>
<!--
    This file is automatically generated by Visual Studio .Net. It is 
    used to store generic object data source configuration information.  
    Renaming the file extension or editing the content of this file may   
    cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="CreateJobFromResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
   <TypeInfo>Namespace.NamespaceChild.NamespaceGrandChild.NamespaceGreatGrandChild.CreateJobFromResponse, Service References.MyServiceReferences.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

试试这个顺序

git checkout develop
git pull --rebase origin develop
git checkout feature/my-branch
git rebase develop

经过数小时的挖掘和谷歌搜索,我终于找到了问题所在。我预感到可能是服务器上的文件名或路径太长有关。

似乎如果在 windows 服务器上托管 git,默认情况下,文件路径不能超过 260 个字符,除非在命令中指定。

我发现 this answer 突出显示了解决我的问题所需的内容。

git config --system core.longpaths true