【问题标题】:Include certain files with extention X only when in folders named Y: Ignore TypeScript generated JavaScript files in git仅在名为 Y 的文件夹中包含扩展名为 X 的某些文件:忽略 git 中 TypeScript 生成的 JavaScript 文件
【发布时间】:2014-09-13 11:47:19
【问题描述】:

我在一个 zip 文件中继承了一个项目的代码,我的第一步是尝试将它放入 SCM 系统。代码在 Visual Studio 中开发,使用 NuGet 和 TypeScript。

TypeScript 编译器会生成我不想跟踪的 *.js*.js.map 文件。由于该项目专门使用 TypeScript,我想通常排除所有 *.js 文件。

但是,NuGet 放在名为 Scripts 的文件夹中的第 3 方 JavaScript 库仍必须包含在内。

我在存储库的.gitignore中尝试了以下操作

# Exclude JavaScript other than from NuGet packages
# This is a TypeScript project so JavaScript should not be used
*.js
*.js.map
!Scripts/*.js

这适用于排除所有 JavaScript 文件。但是,它不包含 Scripts 文件夹中的 JavaScript 文件。

由于 TypeScript 文件存在于许多目录中,因此不希望枚举所有要排除 JavaScript 文件的目录。

我发现的所有类似问题都倾向于忽略所有但接受的文件扩展名,这不是我想要做的。

【问题讨论】:

    标签: git visual-studio typescript gitignore


    【解决方案1】:

    您需要使用**/*.js 包含所有子文件夹

    # Exclude JavaScript other than from NuGet packages
    # This is a TypeScript project so JavaScript should not be used
    *.js
    *.js.map
    !Scripts/**/*.js
    

    PS:确保您拥有最新的 git,因为它是最近才添加的。

    【讨论】:

    • 你知道最近多久吗?这发生在 2.x 行尚不可用的 Windows 上。我一直在想我会找到一个可以使用的 2.0 版本,但没有。这似乎不适用于 Windows 上的 1.9.4 msysgit。
    【解决方案2】:

    我发现以下似乎可以正常工作(git 版本 1.9.4.msysgit.0):

    *.js
    *.js.map
    !**/Scripts/**/*.js
    !**/Scripts/**/*.js.map
    

    【讨论】:

      猜你喜欢
      • 2010-11-01
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      相关资源
      最近更新 更多