为了账号安全,请及时绑定邮箱和手机立即绑定

如何忽略TFS中的文件/目录以避免它们进入中央源存储库?

/ 猿问

如何忽略TFS中的文件/目录以避免它们进入中央源存储库?

POPMUISE 2019-09-19 08:43:41

是否可以在TFS源代码管理中基于每个项目设置要忽略的文件/文件夹?

例如,我有一个带有资产文件夹的网站,我不想进入源代码控制。这些资产由一个单独的系统维护。此外,我不想将几千兆字节的资源放入源代码控制中,但我需要在我的开发机器上使用几个示例,但我不想检查其中的那些。

如果我在绑定源控件的同时在这个网站上工作并刷新树,这些文件将自动再次添加

我想防止这种情况发生。


查看完整描述

3 回答

?
桃花长相依

对于VS2015和VS2017

适用于TFS(本地)或VSO(Visual Studio Online - Azure托管的产品)

NuGet文档提供了有关如何完成此操作的说明,我刚刚针对VSTS(Azure托管的TFS)成功地遵循了Visual Studio 2015和Visual Studio 2017。截至2016年 8月2018年,所有内容均已全面更新。

我建议您按照NuGet的说明进行操作,但只是回顾一下我的所作所为:

  1. 确保您的packages文件夹未提交给TFS。如果是的话,那就把它拿出来吧。

  2. .sln除非另有说明,否则我们在下面创建的所有其他内容都会进入您文件所在的文件夹(NuGet的说明并不完全清楚)。

  3. 创建一个.nuget文件夹。您可以使用Windows资源管理器为其命名.nuget.以便成功保存.nuget(它会自动删除最后一个句点)但直接尝试命名它.nuget可能不起作用(您可能会收到错误或者它可能会更改名称,具体取决于您的Windows版本)。或者命名目录nuget,并在命令行提示符下打开父目录。类型。ren nuget .nuget

  4. 在该文件夹内,创建一个NuGet.config文件并添加以下内容并保存:

NuGet.config:

<?xml version="1.0" encoding="utf-8"?><configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution></configuration>
  1. 返回到您.sln的文件夹并创建一个新的文本文件并命名.tfignore(如果使用Windows资源管理器,请使用与上面相同的技巧并命名.tfignore.

  2. 将以下内容放入该文件中:

.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
  1. 保存所有这些,将其提交给TFS,然后关闭并重新打开Visual Studio,并且团队资源管理器不应再将packages文件夹标识为挂起签入。

  2. 通过Windows资源管理器将.tfignore文件和.nuget文件夹复制/粘贴到我所有的各种解决方案并提交它们,我不再让packages文件夹试图潜入我的源代码控制仓库!

进一步定制

虽然不是我的,但我发现sirkirby的这个.tfignore模板很方便。我的答案中的示例涵盖了Nuget packages文件夹,但此模板包含一些其他内容,并提供了其他示例,如果您希望进一步自定义这些示例。


查看完整回答
反对 回复 2019-09-19
?
慕尼黑的夜晚无繁华

如果您使用的是本地工作区(TFS 2012+),则现在可以使用该.tfignore文件排除本地文件夹和文件的签入。

如果您将该文件添加到源代码管理中,则可以确保团队中的其他人共享相同的排除设置。

有关MSDN的完整详细信息 - http://msdn.microsoft.com/en-us/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


查看完整回答
反对 回复 2019-09-19
?
吃鸡游戏

确实显得有些笨重忽略Team Foundation Server的文件(文件夹)。我找到了几种方法(使用TFS / Team Explorer / Visual Studio 2008)。这些方法也适用于网站ASP项目类型。

一种方法是向项目添加新项目或现有项目(例如,右键单击项目,添加现有项目或从Windows资源管理器拖放到解决方案资源管理器中),让TFS处理文件或文件夹,然后撤消待处理项目的变化。TFS会将它们取消标记为具有待定的添加更改,并且文件将静静地放置在项目中并远离TFS。

另一种方法是使用Source Control Explorer的Add Items to Folder命令。这将启动一个小向导,在其中一个步骤中您可以选择要排除的项目(尽管我认为您必须使用此方法向TFS添加至少一个项目,以便向导让您继续)。

您甚至可以添加禁止模式签到策略(在团队 - >团队项目设置 - >源代码管理... - >签到策略下)以禁止团队中的其他人错误地检查某些资产。


查看完整回答
反对 回复 2019-09-19
  • 3 回答
  • 0 关注
  • 187 浏览
我要回答
慕课专栏
更多

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信