.gitignore 保留一个文件
.gitignore to retain one file
我正在尝试创建一个 cronjob 来备份我在 git 中的所有 Jenkins 配置。在我的存储库中,我唯一需要跟踪的是每个 Jenkins 项目中的 config.xml
。文件系统的结构类似于 ../jenkins/jobs/[PROJECTNAME]/config.xml
。 .git
位于 jobs.
我不想明确忽略所有其他 folder/files,但只允许该位置的 config.xml
。我提出了以下可行的解决方案:
*
!.gitignore
!config.xml
!*/
*/workspace
*/modules
/config-history
*/config-history
*/*/config-history
*/*/*/config-history
*/*/*/*/config-history
*/*/*/*/*/config-history
*/*/*/*/*/*/config-history
*/*/*/*/*/*/*/config-history
不幸的是有很多项目,git add .
需要一段时间。忽略 workspace
,直接包含大多数文件,没有增加任何好处。
顺便说一句。直观而简短的方法根本行不通:
*
!.gitignore
!*/config.xml
有什么想法可以优化我的 .gitignore 或我的 git 添加而不列出所有文件吗?
既然这只是一项自动化任务,为什么不直接添加您需要的文件呢?替换
git add .
和
git add config.xml
和git将不必遍历整个项目树。
如果您想显示回购的状态,而不加载未跟踪的文件,请使用
git status -uno
编辑:当然,您必须位于包含要添加的 config.xml
的目录中;如果要在当前目录的子目录中添加所有 config.xml
,请使用
git add */config.xml
好吧,你至少可以使用双星号来缩短你的 .gitignore:
# other stuff here
**/config-history
它将匹配任何路径中的config-history
。
我正在尝试创建一个 cronjob 来备份我在 git 中的所有 Jenkins 配置。在我的存储库中,我唯一需要跟踪的是每个 Jenkins 项目中的 config.xml
。文件系统的结构类似于 ../jenkins/jobs/[PROJECTNAME]/config.xml
。 .git
位于 jobs.
我不想明确忽略所有其他 folder/files,但只允许该位置的 config.xml
。我提出了以下可行的解决方案:
*
!.gitignore
!config.xml
!*/
*/workspace
*/modules
/config-history
*/config-history
*/*/config-history
*/*/*/config-history
*/*/*/*/config-history
*/*/*/*/*/config-history
*/*/*/*/*/*/config-history
*/*/*/*/*/*/*/config-history
不幸的是有很多项目,git add .
需要一段时间。忽略 workspace
,直接包含大多数文件,没有增加任何好处。
顺便说一句。直观而简短的方法根本行不通:
*
!.gitignore
!*/config.xml
有什么想法可以优化我的 .gitignore 或我的 git 添加而不列出所有文件吗?
既然这只是一项自动化任务,为什么不直接添加您需要的文件呢?替换
git add .
和
git add config.xml
和git将不必遍历整个项目树。
如果您想显示回购的状态,而不加载未跟踪的文件,请使用
git status -uno
编辑:当然,您必须位于包含要添加的 config.xml
的目录中;如果要在当前目录的子目录中添加所有 config.xml
,请使用
git add */config.xml
好吧,你至少可以使用双星号来缩短你的 .gitignore:
# other stuff here
**/config-history
它将匹配任何路径中的config-history
。