是否可以在TFS源代码管理中针对每个项目设置要忽略的文件/文件夹?
例如,我有一个网站,其中包含一个我不想进入源代码管理的资源文件夹。这些资产由单独的系统维护。此外,我不想将数GB的资产放入源代码管理中,但是我需要在我的开发机上安装几个示例,但是我不想在其中两个示例中进行检查。
如果我在绑定源代码管理时正在此网站上工作,并且刷新树,则这些文件将自动重新添加
我想防止这种情况的发生。
是否可以在TFS源代码管理中针对每个项目设置要忽略的文件/文件夹?
例如,我有一个网站,其中包含一个我不想进入源代码管理的资源文件夹。这些资产由单独的系统维护。此外,我不想将数GB的资产放入源代码管理中,但是我需要在我的开发机上安装几个示例,但是我不想在其中两个示例中进行检查。
如果我在绑定源代码管理时正在此网站上工作,并且刷新树,则这些文件将自动重新添加
我想防止这种情况的发生。
Answers:
NuGet文档提供了有关如何完成此操作的说明,我刚刚针对VSTS(Azure托管的TFS)针对Visual Studio 2015和Visual Studio 2017成功地遵循了它们。截至2016年11月,所有内容已全面更新.2018 年 8月。
我建议您按照NuGet的说明进行操作,但仅重述一下我所做的事情:
packages
文件夹未提交到TFS。如果是这样,请将其取出。.sln
除非另有说明(否则,NuGet的说明尚不完全清楚),我们在下面创建的所有其他内容都将放入文件所在的文件夹中。.nuget
文件夹。您可以使用Windows资源管理器对其进行命名,.nuget.
以成功将其另存为.nuget
(它会自动删除最后一个句点),但是直接尝试命名它.nuget
可能行不通(可能会出现错误,也可能会更改名称,具体取决于您的Windows版本) )。或命名目录nuget,然后在命令行提示符下打开父目录。类型。任努吉.nugetNuGet.config
文件并添加以下内容并保存:NuGet.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
.sln
的文件夹,创建一个新的文本文件并命名.tfignore
(如果使用Windows资源管理器,请使用与上述相同的技巧并命名.tfignore.
).tfignore:
# Ignore the NuGet packages folder in the root of the repository.
# If needed, prefix 'packages' with additional folder names if it's
# not in the same folder as .tfignore.
packages
# include package target files which may be required for msbuild,
# again prefixing the folder name as needed.
!packages/*.targets
.tfignore
文件和.nuget
文件夹复制/粘贴到我所有的各种解决方案中,并提交它们,而我不再拥有packages
试图潜入我的源代码控制存储库的文件夹!虽然不是我的,但我发现sirkirby的此.tfignore
模板很方便。我的答案中的示例涵盖了Nuget packages
文件夹,但是此模板还包含其他一些内容,并提供了其他示例,如果您希望进一步自定义此示例,它们可能会很有用。
如果您使用的是本地工作区(TFS 2012+),则现在可以使用该.tfignore
文件来排除本地文件夹和文件。
如果将该文件添加到源代码管理中,则可以确保团队中的其他人共享相同的排除设置。
有关MSDN的完整详细信息-http: //msdn.microsoft.com/zh-cn/library/ms245454.aspx#tfignore
对于懒惰的人:
通过
.tfignore
在要应用规则的文件夹中放置一个名为的文本文件,可以配置忽略哪些类型的文件。该.tfignore
文件的效果是递归的。但是,您可以在子文件夹中创建.tfignore文件,以覆盖.tfignore
父文件夹中文件的效果。以下规则适用于.tfignore文件:
#
开始评论行- *和?支持通配符。
- 除非以\字符为前缀,否则filespec是递归的。
- !对filespec求反(不忽略与模式匹配的文件)
示例文件:
# Ignore .cpp files in the ProjA sub-folder and all its subfolders
ProjA\*.cpp
#
# Ignore .txt files in this folder
\*.txt
#
# Ignore .xml files in this folder and all its sub-folders
*.xml
#
# Ignore all files in the Temp sub-folder
\Temp
#
# Do not ignore .dll files in this folder nor in any of its sub-folders
!*.dll
.tfignore
,所以我创建.tfignore.
和删除它在自己的最后一个点..
.tfignore
由于缺少适当的名称而不允许您创建文件,则可以创建该文件或通过命令行窗口重命名该文件。
它确实显得有些笨重Team Foundation Server中忽略文件(文件夹)。我发现了几种方法(使用TFS / Team Explorer / Visual Studio 2008)。这些方法也适用于网站的ASP项目类型。
一种方法是将新项目或现有项目添加到项目中(例如,右键单击项目,添加现有项目或从Windows资源管理器拖放到解决方案资源管理器中),让TFS处理文件或文件夹,然后撤消待处理物品的更改。TFS会将它们取消标记为具有挂起的添加更改,并且文件将安静地位于项目中,而不会进入TFS。
另一种方法是使用“源代码管理资源管理器”中的“将项目添加到文件夹”命令。这将启动一个小型向导,并且在其中一个步骤上,您可以选择要排除的项目(尽管我认为您必须使用此方法向TFS添加至少一个项目,向导才能继续操作)。
您甚至可以添加禁止模式检入策略(在“团队->团队项目设置->源代码管理...->检入策略下”),以防止团队中的其他人错误地检入某些资产。
对于TFS 2013:
在VisualStudioTeam Explorer中启动,在PendingChanges对话框中使用状态[add]撤消更改,应将其忽略。
Visual Studio将再次检测添加。在“ 排除的更改”中单击“检测到:x添加”
在打开的“促进候选者更改”对话框中,您可以使用上下文菜单轻松排除文件和文件夹。选项有:
不要忘记签入更改的.tfignore-File。
对于VS 2015/2017:
相同的过程:在TeamExplorer \ Pending更改的“排除的更改选项卡”中,单击“检测到”:xxx add(s)
将打开“促进候选者更改”对话框,然后在条目上单击鼠标右键以打开上下文菜单。错字现已修复:-)