bin 文件夹中的文件仍在版本控制中

File in bin folder still being versioned

我正在使用 TortoiseGit,我很困惑为什么我的项目 (VS2015) 的 bin 文件夹中的文件受版本控制。我原以为 .gitignore 中的这一部分会阻止 bin 文件夹中的文件进行版本控制。

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
x64/
build/
bld/
[Bb]in/
[Oo]bj/

我不太了解 TortoiseGit,但是我假设 bin 文件夹中的某些文件之前已经提交,后来又被更改了。 git忽略文件仅忽略不属于存储库的文件。

要检查是否属于这种情况,您最好查看 bin 文件夹。也应该有一些文件标记为已修改(也许您需要打开更多标记为已修改的文件夹才能找到文件)。如果您找到了这样的文件,请在其上执行 git 登录(我认为这应该可以通过文件的上下文菜单使用 TortoiseGit)。然后你应该找到另一个包含该文件的提交。

有两种方法可以解决这个问题:

可能您根本不希望该文件包含在您的存储库中,例如因为它是由您的构建过程构建的,不需要对该文件进行版本控制。在这种情况下,您可以按照 this answer 中所述从存储库中删除该文件。之后提交,bin 文件夹中的提交不应再标记为已修改。

如果出于某种充分的理由您想将该文件置于版本控制之下但忽略对其所做的更改,您可以在本地存储库中将其标记为 "assume-unchanged"。 this answer 中描述了如何使用 TortoiseGit 做到这一点。请注意,这仅适用于您的本地存储库。

如果您需要一个全局解决方案来将该文件存储在 git 中但忽略对其进行的更改,那么了解它是什么类型的文件以及为什么需要对它进行版本控制而不是想要跟踪文件的更改。