.gitignore-跟踪文件和目录的特定子目录

时间:2019-01-29 22:16:25

标签: git gitignore

在将其标记为不可控制的重复项之前,我查看了十二个Stack Overflow问题,但这些问题都不适合我的情况。

root/
├── trackdir1/          # track directory and its subdirectories
├── trackdir2/          # track directory and its subdirectories
├── ignoreddir/         # ignore all other subdirectories of root
├── .../
└── *                   # keep all FILES within root

我有一个目录(实际上是几个目录,但我们假设它是root)。我想跟踪rootroot的某些特定子目录中的所有文件,但忽略所有其他子目录。

我看过的所有堆栈溢出问题都做了一个或另一个:包含文件但忽略了子目录,或者包括特定子目录和忽略了的文件。

基于我对.gitignore的理解(显然缺乏),我需要对root中的文件进行例外处理,对我要跟踪的特定子目录进行例外处理,然后排除所有目录下的文件。根目录中的子目录。

!/*
!/trackdir1/
!/trackdir1/**
!/trackdir2/
!/trackdir2/**
/*/**

但是,此模式仍然排除trackdir1trackdir2。我也尝试过诸如!/trackdir1!/trackdir1/*之类的事情。

我在做什么错了?

1 个答案:

答案 0 :(得分:2)

.gitignore文件的内容将按顺序处理,后面的指令将覆盖前面的指令。例如,这里有/*/**覆盖!/trackdir2/**

只需将/*/**放在首位即可

/*/**
!/*
!/trackdir1/
!/trackdir1/**
!/trackdir2/
!/trackdir2/**