在将其标记为不可控制的重复项之前,我查看了十二个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
)。我想跟踪root
和root
的某些特定子目录中的所有文件,但忽略所有其他子目录。
我看过的所有堆栈溢出问题都做了一个或另一个:包含文件但忽略了子目录,或者包括特定子目录和忽略了的文件。
基于我对.gitignore的理解(显然缺乏),我需要对root
中的文件进行例外处理,对我要跟踪的特定子目录进行例外处理,然后排除所有目录下的文件。根目录中的子目录。
!/*
!/trackdir1/
!/trackdir1/**
!/trackdir2/
!/trackdir2/**
/*/**
但是,此模式仍然排除trackdir1
和trackdir2
。我也尝试过诸如!/trackdir1
和!/trackdir1/*
之类的事情。
我在做什么错了?
答案 0 :(得分:2)
.gitignore
文件的内容将按顺序处理,后面的指令将覆盖前面的指令。例如,这里有/*/**
覆盖!/trackdir2/**
。
只需将/*/**
放在首位即可
/*/**
!/*
!/trackdir1/
!/trackdir1/**
!/trackdir2/
!/trackdir2/**