gitignore除重复的子目录外的所有内容

亚当·贾维斯(Adam Jarvis)

我有以下目录结构:

./
├── proj-1
│   ├── README.md
│   ├── src/
│   └── test/
└── proj-2
    ├── README.md
    ├── src/
    └── test/

如何src/仅使用.gitignore根目录中的一个文件忽略目录以外的所有内容

我试过了:

*
!.gitignore
!/*/src/
!/*/src/*

但这似乎并没有在运行后获取我想要的目录git status

有小费吗?

本杰明W.

您必须递归取消忽略src目录树的所有父目录,然后忽略其内容:

# Ignore everything
*

# Unignore .gitignore
!.gitignore

# Unignore all directories
!*/

# Ignore contents of all directories
*/*

# Unignore all src subdirectories
!*/src/

# Unignore directory tree under src subdirectories
!*/src/**

所以,对于一棵看起来像

.
├── proj-1
│   ├── README.md
│   ├── src
│   │   ├── srcfile1
│   │   ├── srcfile2
│   │   ├── srcfile3
│   │   └── subsrc
│   │       ├── subsrcfile1
│   │       ├── subsrcfile2
│   │       └── subsrcfile3
│   └── test
│       ├── testfile1
│       ├── testfile2
│       └── testfile3
├── proj-2
│   ├── README.md
│   ├── src
│   │   ├── srcfile1
│   │   ├── srcfile2
│   │   └── srcfile3
│   └── test
│       ├── testfile1
│       ├── testfile2
│       └── testfile3
└── proj-3
    └── file

你得到这个状态

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    .gitignore
    proj-1/
    proj-2/

nothing added to commit but untracked files present (use "git add" to track)

在添加所有内容之后,您将获得

$ git add * .gitignore 

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

        new file:   .gitignore
        new file:   proj-1/src/srcfile1
        new file:   proj-1/src/srcfile2
        new file:   proj-1/src/srcfile3
        new file:   proj-1/src/subsrc/subsrcfile1
        new file:   proj-1/src/subsrc/subsrcfile2
        new file:   proj-1/src/subsrc/subsrcfile3
        new file:   proj-2/src/srcfile1
        new file:   proj-2/src/srcfile2
        new file:   proj-2/src/srcfile3

.gitignore必须明确添加,因为外壳不会扩展*为包括隐藏文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

gitignore除重复的子目录外的所有内容

rsync-排除除子目录外的所有内容,但排除子目录

忽略.gitignore中除一个子目录外的所有子目录

htaccess-重定向除子目录外的所有内容(Ember js)

git排除文件夹中除子目录外的所有内容

递归删除除几个子目录外的所有子目录

使用git filter-branch删除除一个子目录外的所有内容

gitignore子目录的内容

如何排除除所有顶级点文件和子目录之外的所有内容?

忽略除一个文件外的所有文件和子目录中的文件

如何告诉Git忽略除子目录之外的所有内容?

如何忽略除单个文件之外的git仓库子目录中的所有内容?

Gitignore排除所有子目录中的某些文件

.gitignore不忽略子目录,尝试了所有

删除除与特定模式匹配的子目录以外的所有子目录

robots.txt允许除少数子目录外的所有子目录

为特定目录中除子目录外的所有C ++文件生成一个标记文件

将所有子子目录的内容仅移动到其子目录中

除一个路由外,是否所有路由都使用基本名称子目录?

gitignore所有node_modules目录和子目录

gitignore目录和子目录中的所有文件(特定文件类型)

如何将du(fx)应用于除某些子目录之外的所有子目录?

使用.gitignore忽略除特定目录以外的所有内容

Apache重定向除一个目录以外的所有子目录

Git添加所有子目录

从所有子目录安装软件

在UNIX中打印所有子目录下的所有文件内容

将所有子目录及其内容移动到当前工作目录

如何建立目录中所有文件的索引,包括子目录和ZIP文件的内容?