git忽略除文件夹,文件夹和该文件夹中的扩展名之外的所有内容

时间:2016-07-20 17:55:09

标签: git gitignore

我需要创建遵循以下规则的.gitignore文件:

  1. 忽略root中的所有内容
  2. 单个文件fil.py
  3. 除外
  4. 单个文件夹fol/
  5. 除外
  6. 但请忽略.pyc
  7. 中扩展名为/fol的文件

    我尝试了几种组合,但我无法让它发挥作用。这是我测试的内容:

    1 -

    # ignore everything in root
    *
    # except for this file
    !fil.py
    # except for this folder
    !/fol
    # But do ignore these files
    /fol/*.pyc
    

    这将跟踪对fol/文件夹中的文件所做的更改,但会忽略添加到其中的所有新文件。

    2 -

    # ignore everything in root
    */
    # except for this file
    !fil.py
    # except for this folder
    !/fol
    # But do ignore these files
    /fol/*.pyc
    

    这会正确跟踪fol/中的旧文件和新文件,同时忽略*.pyc个文件;但也会跟踪根文件夹中的文件。

    3 -

    # ignore everything in root
    /*
    # except for this file
    !fil.py
    # except for this folder
    !/fol
    # But do ignore these files
    /fol/*.pyc
    

    这会正确跟踪fol/中的旧文件和新文件,并忽略根文件夹中的文件。但它也会跟踪*.pyc文件夹中的所有fol/个文件。

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

使用以下.gitignore,我相信这是正如您所希望的那样。

/*
!fil.py
!/fol
*.pyc

working example