【问题标题】:Git: ignore file.ext1 only if file.ext2 exists [duplicate]Git:仅当 file.ext2 存在时才忽略 file.ext1 [重复]
【发布时间】:2017-07-02 07:54:15
【问题描述】:

确切地说,有一个项目包含一堆 *.el 和 *.org 文件。执行时,每个 file.org 都会生成一个 file.el。现在正在编写 .gitignore。有没有可能说任何 file.el 都应该被忽略只有在 file.org 存在时,否则跟踪 file.el

This 没有解决它。也不在 .gitignore 中写入每个文件

【问题讨论】:

  • 您是否考虑过修改构建以便将生成的文件放在单独的文件夹中?
  • 我同意@Mic,我认为这更像是一个流程问题,除了 / 生成之外,您还可以有一个额外的文件夹,例如 /dist,以及填充该 / 的额外任务dist 文件夹。所以生成的文件仍然会被忽略,但 /dist 文件夹中的文件不会。

标签: git gitignore


【解决方案1】:

不适用于 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'”

但是,正如评论的那样,将 generate 与 dist 文件分开会更容易,只有前者被忽略。

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 2016-03-13
    • 2013-04-28
    • 2021-05-18
    • 2017-11-18
    • 2015-03-09
    • 2012-03-27
    • 1970-01-01
    • 2022-08-18
    相关资源
    最近更新 更多