我正在处理一个存储在git库中的C#项目..gitignore缺少一些条目,并且有几个在Visual Studio构建过程中生成的文件不能被忽略,并已提交到repo.这些文件包含我们软件的版本号,并用于将版本信息放入构建的可执行文件中.
每当我们构建项目时,都会重新生成文件,但通常文件的内容根本不会更改(因为版本号没有更新).但是,这些文件仍然显示为已更改.如果我运行git diff
,则只显示一个文件,并且+和-行完全相同.更奇怪的是:如果我运行git add .
,只有那个文件显示为暂存文件.另一个消失了.
下面是git status和git add的输出
下面是git diff的输出
这完全违背了我对git如何工作的心理模型.这些文件具有相同的名称和内容,因此它们不应显示为已更改.如果"更改"的文件被暂存,它如何从索引中消失?为什么这两个文件会得到不同的对待?
需要澄清的是:我不是在问如何解决这种情况.我非常确定我知道如何做到这一点,但细节将涉及特定于该项目的细节.我只是在问这是怎么可能的.