Git忽略生成的扩展

时间:2016-09-14 23:16:23

标签: javascript git

我想将JavaScript(.js)文件保存在git控件下。

但是,如果存在TypeScript(.ts)文件,我想忽略关联的.js文件。

有没有办法用git实现这个目标?

编辑:最好不要更改目录并重构所有现有代码。

1 个答案:

答案 0 :(得分:5)

执行此操作的典型方法是将任何已编译的输出放在某个分发目录中。您可以像这样组织目录结构:

src/
  ... various JavaScript files, etc.

dist/
  ... compiled output from any build tool you're using

然后在git中,您可以忽略dist目录,并假设任何打算撤销该repo并在其上工作的人将手动运行构建工具,或者它将作为一部分自动构建安装过程。

换句话说,它更容易组织它而不依赖于一组特定的git功能。这是JavaScript世界中非常常见的模式。

如果您不使用该方法,另一种方法是在您要忽略的文件中添加一些标识符。例如,您可以在_之前添加要忽略的所有文件,然后将此规则添加到.gitignore(请参阅this answer了解以下原因):

\_*

第二种方法存在一些缺点:

  1. 您使用的其他库可能使用以类似标识符开头且会发生冲突的文件名
  2. 很难维持;如果发生碰撞或者您改变了对结构的看法,您可能希望稍后更改标识符,并且您必须返回所有文件并更改名称(当然,这可以自动化,但它可能会是一种痛苦)
  3. 希望有所帮助。