Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用VisualStudio的Git使用my.csproj做了一些奇怪的事情_Asp.net_Git_Visual Studio - Fatal编程技术网

Asp.net 使用VisualStudio的Git使用my.csproj做了一些奇怪的事情

Asp.net 使用VisualStudio的Git使用my.csproj做了一些奇怪的事情,asp.net,git,visual-studio,Asp.net,Git,Visual Studio,好吧,这是一个奇怪的问题,我不知道如何解决这个问题。我正在使用以下设置: Visual Studio 2017 v15.6.7 Git v2.17.0.windows.1 我已经使用它一段时间了,这是我第一次在web项目内容/图像目录中添加或删除图像时发生奇怪的事情 下面是在我的项目中重现这种行为的步骤。不知道其他项目是否也会发生这种情况 我们使用“发展”作为我们的发展分支 从“开发”中创建一个名为“wake_on_lan”的新分支 检查分支机构是否已切换到“唤醒局域网” C:\Projects

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

Visual Studio 2017 v15.6.7 Git v2.17.0.windows.1 我已经使用它一段时间了,这是我第一次在web项目内容/图像目录中添加或删除图像时发生奇怪的事情

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

我们使用“发展”作为我们的发展分支 从“开发”中创建一个名为“wake_on_lan”的新分支 检查分支机构是否已切换到“唤醒局域网” C:\Projects\P2G\P2G>git状态 在分支上唤醒 没什么要承诺的,正在清理树

导航到内容/图像目录 单击wakeonlan.png并右键单击它,然后选择“从项目中排除” 分支上的git状态分支上的wake\u\u lan您的分支是最新的 “起源/唤醒局域网”

未为提交而暂存的更改:使用git添加。。。更新 使用git签出将提交什么-。。。丢弃 工作目录中的更改

    modified:   Sources/WUR.P2G.WEB/Wur.P2G.Web.csproj
    modified:   Sources/Wur.P2G.Web/Wur.P2G.Web.csproj
没有添加任何更改以使用git add和/或git commit-a提交

转到团队资源管理器。现在可以看到.csproj中的更改。 提交更改后,这里会变得很奇怪。更改已提交,但另一个更改对同一文件.csproj可见。 Git状态指示.csproj已修改为红色,但未进行任何更改。 无法用VS撤消更改。 无法使用git命令行签出-.csproj Gitkraken说存在冲突,但也不能放弃更改

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


我在某个地方读到,我不得不将*.csproj merge=union添加到.gittributes文件中,但这没有什么区别。

看起来您在存储库中复制了不同情况的文件。您可以通过命令git ls tree-r HEAD来验证它


你应该移除其中一个。最简单的方法是使用Linux计算机或一些web界面。在Windows上,这应该是可能的,但如果不尝试,我就说不出是如何实现的。

1。确保在步骤6、2之前按全部保存。请在每一步提供git状态的输出,3在第6步和第7步之后检查git diff输出Hey good point。看.csproj有两个修改。一个有大写的目录名,另一个有CamelCaseYep,就是这样。我不知道Git区分大小写。VS没有考虑到这一点,这导致了重复。git ls-tree-r HEAD命令在git for Windows中不可用。我可以使用web界面删除副本。显然我输入错误,应该有一个空格。现在编辑对了。它在Windows中尝试不区分大小写,但其核心是区分大小写的,因此它可以包含冲突的名称。虽然了解它们的外观会很有趣,但你只在Windows上使用它。我猜是Visual Studio搞砸了。我试图将项目从全大写改为CamelCase。这可能是造成这种情况的原因。