当我使用Visual Studio 2013 Professional签入TFS Express 2013中的更改时,有一个“排除的更改”列表,其中包含1541个项目。
我从未告诉TFS排除更改,并且不明白为什么有人甚至想要“排除”更改(不是源控制所有关于SAVING更改???)。我有点担心我有没有被保存的变化......但我甚至不确定这是否意味着什么。我已经用Google搜索了有关TFS中“排除的更改”的更多信息,但未找到任何解释。
任何人都可以向我解释:什么是排除的变化?我为什么要排除更改?为什么有1541个被排除的变更,我从未要求被排除?我是否应该担心排除变化?我应该将这些排除的更改更改为包含更改吗?
答案 0 :(得分:17)
有很多事情可以导致改变"被排除在外:
obj/*
和bin/*
以及其他一些文件夹中的文件。以及某些扩展程序,例如.csproj.user
。您应该检查“排除的更改”列表,并使用.tfignore
文件忽略它们。您也可以通过右键单击此类排除的更改并选择按路径/扩展名或模式忽略选项,从UI执行此操作。
基本上,如果您在“排除的文件”部分中看到内容,请右键单击/包含它们或将它们添加到.tfignore文件中。
这样,至少非常清楚该列表中的项目尚未进行评估,而且很可能需要包括在内。
您可能还想通过打开文件 / 源代码管理 / 高级 / 更改源代码管理绑定来检查源代码管理绑定... 确保所有项目都显示为与sourcecontrol绑定,并且不会显示任何错误。
在Git以及其他源代码控制系统中,更改通常不自动挂起。这是为了防止您意外地检查您不想要的东西。在Git中,您需要显式调用git add
来将更改标记为您要提交的更改。在您这样做之前,我们会考虑更改"未跟踪",这基本上是"排除的更改" TFVC的特点。
Subversion(SVN)具有类似的行为,其中更改的文件标记为unversioned,需要通过调用svn add
显式添加。
因此,对于源控制系统来说,这不是一种非常奇怪的行为。它基本上将你放在来源的控制中。
答案 1 :(得分:2)
想要提供另一个排除文件的案例。如果您将项目中的项目或新项目添加到包含默认名称(如“MainWindow”)的项目中,则在提交更改之前重命名或删除该文件。 “MainWindow”将处于排除的更改中,具有新名称的项目将包含在“包含的更改”中。在这种情况下,您可以安全地删除它们。