使用Visual Studio的Git对我的.csproj

时间:2018-05-06 12:30:40

标签: asp.net git visual-studio

好的,这是一个奇怪的,我不知道如何解决这个问题。我使用以下设置:

  • Visual Studio 2017 v15.6.7
  • Git v2.17.0.windows.1

我已经使用了一段时间,并且第一次在我添加或删除Web项目内容/图像目录中的图像时发生了一些奇怪的事情。

以下是在我的项目中重现此行为的步骤。不知道其他项目是否也会发生这种情况。

  1. 我们使用'开发'作为我们的发展分支
  2. 从' development'创建一个新的分支。名为' wake_on_lan'
  3. 检查分支是否已切换到' wake_on_lan'
  4.   

    C:\ Projects \ P2G \ P2G> git status
          在分支上wake_on_lan
          无需承诺,工作树干净

    1. 导航至内容/图像目录
    2. 点击wakeonlan.png并右键点击它,然后选择“从项目中排除'
    3. enter image description here

        

      git status在分支上wake_on_lan您的分支是最新的   '原点/ wake_on_lan'

           

      未提交的更改提交:(使用" git add ..."进行更新   什么将被承诺)(使用" git checkout - ..."丢弃   工作目录的变化)

          modified:   Sources/WUR.P2G.WEB/Wur.P2G.Web.csproj
          modified:   Sources/Wur.P2G.Web/Wur.P2G.Web.csproj
      
           

      没有更改添加到提交(使用" git add"和/或" git commit -a")

      1. 转到团队资源管理器。现在可以看到.csproj中的更改。
      2. enter image description here

        1. 承诺改变,这里变得奇怪。提交更改但另一个更改对同一文件(.csproj)可见。
        2. Git状态告诉.csproj被修改(红色)但没有进行任何更改。 无法撤消VS的更改。 无法使用git命令行结帐 - .csproj Gitkraken说存在冲突,但不能放弃改变

          enter image description here

          在此之后,我发现到目前为止恢复至少该项目的唯一方法是从回购中创建一个新的克隆。

          我在某处读到了我必须将* .csproj merge = union添加到.gitattributes文件中,但这没什么区别。

1 个答案:

答案 0 :(得分:1)

您似乎在存储库中复制了具有不同情况的文件。您可以通过命令git ls-tree -r HEAD进行验证。

您应该删除其中一个。最简单的方法是使用Linux计算机或某些Web界面。应该可以在某种程度上在Windows,但我不能说没有尝试它。