【问题标题】:Ignore parent directory in Git version control在 Git 版本控制中忽略父目录
【发布时间】:2013-10-21 07:52:38
【问题描述】:

如何忽略.gitignore 中的父目录? 我尝试了这种模式,但似乎它们不起作用:

/../*
../
../*

【问题讨论】:

  • 我有点好奇,为什么不在父文件夹中创建另一个 .gitignore 而不是在其子文件夹的 .gitignore 文件中指定它
  • Afaik 这是不可能的(见@nXqd 的回答)。此外,我认为它高度令人困惑,如果您(当然还有 git 本身)不仅必须搜索父文件夹,还必须搜索 每个 子文件夹和子子文件夹以找出, 哪些文件夹被忽略以及为什么。
  • 我很困惑。为什么要忽略.gitignore 中的父目录?父目录是否在同一个 git 仓库中?

标签: git gitignore


【解决方案1】:

如果您想忽略文件夹但不想修改现有的 .gitignore,请将 .gitignore 拖放到仅包含星号的文件夹中。

*

这是一个快速的 BASH 示例,用于为 .idea 文件夹完成此任务:

$ echo '*' > .idea/.gitignore

【讨论】:

    【解决方案2】:

    如果您希望对 .gitignore 进行版本控制,则不能。

    如果它是版本化的,这意味着父文件夹的元素也是版本化的(并且不能在不从索引中删除其所有内容的情况下被忽略)。
    Kingcrunch comments 你仍然可以版本化.gitignoregit add -f,但正如之前评论的那样,这会很混乱。

    如果最好将.gitignore 放在要忽略的文件夹的父文件夹中。
    并且 there 声明您要忽略的文件夹的名称:

    folder_to_ignore/
    

    (注意最后的'/')

    【讨论】:

    • 您仍然可以使用git add -f filename 添加被忽略的文件。当您想要跟踪空文件夹时,这是一个常见的用例。 “忽略”只是意味着它被隐藏了git statusgit add(没有-f
    • @KingCrunch 是的,我已在答案中添加了这一点。
    • 您可以在不同的目录中拥有多个.gitignore 文件。一个简单的解决方法是在父目录中创建另一个 .gitignore 文件,然后将您希望忽略的文件添加到其中。
    • @IsaacLyman 是的:你可以看到所有的 .gitignore 文件:git check-ignore -v -- afile
    • @IgorGanapolsky 当然可以:在stackoverflow.com/a/50886524/6309 上查看我的另一个答案的第二部分。
    猜你喜欢
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多