C# 将文件表达式添加到gitignore文件会导致源文件标记为已删除

C# 将文件表达式添加到gitignore文件会导致源文件标记为已删除,c#,git,C#,Git,我刚刚启动了一个新的VisualStudio项目,它使用Git作为源代码控制。我需要创建一个.gitignore文件,因为当我执行“git状态”时,我所有的*.dll和*.pdb文件都显示为修改过的文件。即使在添加.gitignore并在文件中添加*.dll和*.pdb之后,“git status”命令仍会显示文件 我在中的某个地方读过,所以我所需要做的就是执行: 吉特rm-r--缓存 但是当我这么做的时候,“git status”现在显示我所有的.cs文件都被删除了 我现在该怎么办?在Visu

我刚刚启动了一个新的VisualStudio项目,它使用Git作为源代码控制。我需要创建一个.gitignore文件,因为当我执行“git状态”时,我所有的*.dll和*.pdb文件都显示为修改过的文件。即使在添加.gitignore并在文件中添加*.dll和*.pdb之后,“git status”命令仍会显示文件

我在中的某个地方读过,所以我所需要做的就是执行: 吉特rm-r--缓存

但是当我这么做的时候,“git status”现在显示我所有的.cs文件都被删除了

我现在该怎么办?在VisualStudio中,我看到每个.cs文件旁边都有“已删除”图标,但它也会在“暂存”部分中显示已删除的文件。另外,它在“更改”选项卡中将.cs文件显示为“已添加”

有人能解释一下吗。我不是Git专家


谢谢,

如果文件显示为已修改,这是因为这些文件已经是以前版本的一部分,因此当您告诉git将它们从缓存中删除时,它们将根据新版本与以前版本的关系被删除。将文件添加到.gitignore仅适用于git未跟踪的文件。因此,如果您允许文件从修订版中“删除”并提交,您将很好,因为它们不会在下一次修订后添加到修订版中但是如果您向前推进了一些修订,然后决定签出其中一个包含这些文件的修订,git可能会拒绝这样做,因为它会覆盖您在工作树上的修订。。。。这让我有了以下评论:您应该删除修订版上已提交的文件,这样这些文件就不会出现在分支的历史记录中。

如果您不确定存储库的状态,您可以在本地擦除所有内容,并从远程下载较旧的状态。我认为问题在于1)清理忽略文件并提交更改。因为这些是构建工件,所以从文件系统中删除它们是安全的。2) 修复并提交。gitingore然后记住你是第一个提交的人。gitingore。你也可以。我如何摆脱已经提交的修订,使文件不在分支机构的历史记录中?这是一个被反复询问的问题。最简单的方法是:-签出好的上一个修订版(它不包含要删除的文件)。-启动Currice选择文件添加(修改)的修订版本,并通过删除不想要的文件来修改它们。