我正在处理一个存储在git库中的C#项目..gitignore缺少一些条目,并且有几个在Visual Studio构建过程中生成的文件不能被忽略,并已提交到repo.这些文件包含我们软件的版本号,并用于将版本信息放入构建的可执行文件中.

每当我们构建项目时,都会重新生成文件,但通常文件的内容根本不会更改(因为版本号没有更新).但是,这些文件仍然显示为已更改.如果我运行git diff,则只显示一个文件,并且+和-行完全相同.更奇怪的是:如果我运行git add .,只有那个文件显示为暂存文件.另一个消失了.

下面是git status和git add的输出

Outputs of git add and git status

下面是git diff的输出

Output of git diff

这完全违背了我对git如何工作的心理模型.这些文件具有相同的名称和内容,因此它们不应显示为已更改.如果"更改"的文件被暂存,它如何从索引中消失?为什么这两个文件会得到不同的对待?

需要澄清的是:我不是在问如何解决这种情况.我非常确定我知道如何做到这一点,但细节将涉及特定于该项目的细节.我只是在问这是怎么可能的.

推荐答案

从日志(log)消息来看,这可能只是空白或控制字符的一些"问题".正如eftshift0在 comments 中提到的那样,我会用比终端输出更详细的东西来研究它.

Csharp相关问答推荐

如何使用Automapper映射两个嵌套列表

Plotly.NET访问互联网时出现异常

使用C#中的Shape API从Azure目录获取所有用户

我无法在Ubuntu下编译使用microsoft.extension.configurationbuilder jsonapi和mono mcs的c#应用程序

应该使用哪一个?"_counter += 1 OR互锁增量(ref_counter)"""

一种安全的方式来存储SSH凭证(MAUI/C#应用程序)

如何在Visual Studio代码中更改大括号模式{},用于C#语言

在ASP.NET Core Web API项目中通过中间件修改`Request.Path`不会更改使用的控制器/操作

C#Null判断处理失败

为什么AggregateException的Catch块不足以处理取消?

在C#中,非静态接口方法的抽象和虚拟是冗余的吗?

C#按名称从类获取属性值类型<;t>;,我需要反射吗?

如何返回具有泛型的类?

WPF动态设置弹出窗口水平偏移

如何在特定环境中运行dotnet测试?

我应该为C#12中的主构造函数参数创建私有属性吗?

Visual Studio,Docker容器-容器调用:连接被拒绝

Xamarin.Forms-如何创建可 Select 的显示alert 或弹出窗口?

如何对构建在Clean架构和CQRS之上的控制器进行单元测试?

当我在Git中暂存文件更改时,它们会消失