Git忽略生成的扩展

chr*_*lly 1 javascript git

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

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

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

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

Jos*_*eam 5

执行此操作的典型方法是将任何已编译的输出放在某个分发目录中.您可以组织您的目录结构,如下所示:

src/
  ... various JavaScript files, etc.

dist/
  ... compiled output from any build tool you're using
Run Code Online (Sandbox Code Playgroud)

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

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

如果不使用该方法,另一种方法是在要忽略的文件中添加一些标识符.例如,您可能会_先添加要忽略的所有文件,然后将此规则添加到您的.gitignore(请参阅此答案以了解以下工作原理):

\_*
Run Code Online (Sandbox Code Playgroud)

第二种方法有一些缺点:

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

希望有所帮助.

  • `这是JavaScript世界中非常常见的模式.不仅仅是JS.几乎任何产生生成输出的东西都会这样做.一般来说,来源/产生的区别几乎是普遍的.这将是一个构建步骤,以获取所有生成的文件并将它们(以某种方式)捆绑到一个可交付物中,在这种情况下,可以表示为获取所有`*.js`文件并将它们放在`/ js /`目录中或者不包括"*.ts"的东西,因为它没有使用最终产品. (2认同)