Git: 仅当 file.ext2 存在时才忽略 file.ext1

Git: ignore file.ext1 only if file.ext2 exists

准确地说,有一个项目有一堆*.el 和*.org 文件。执行时,从每个 file.org 生成一个 file.el。现在正在编写 .gitignore。是否有可能说任何 file.el 应被忽略 只有当 file.org 存在时,否则 track file.el

This没有解决。也不会在 .gitignore

中写入每个文件

不适用于 gitignore(我不知道有条件的忽略规则)。

解决方法是 bash 脚本(甚至可以在 Windows 上运行),它将:

  • 找到全部file.el
  • 对于每个文件,测试file.org是否存在
  • 如果是,使用git update-index --no-assume-unchanged file.el

(或 git skip-worktree --no-assume-unchanged file.el:参见“Difference Between 'assume-unchanged' and 'skip-worktree'

但是,如评论所述,将生成文件与 dist 文件分开会更容易,只忽略前者。