.gitignore以保留一个文件



我正试图创建一个cronjob,以git备份我的所有Jenkins配置。在我的存储库中,唯一需要跟踪的是每个Jenkins项目中的config.xml。文件系统的结构类似于../jenkins/jobs/[PROJECTNAME]/config.xml.git位于作业中。

我不想显式地忽略所有其他文件夹/文件,但只允许该位置的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,并没有增加任何好处。

Btw。直观而简短的方法根本不起作用:

*
!.gitignore
!*/config.xml

有什么想法可以在不列出所有文件的情况下优化我的.gitignore或我的gitadd吗?

既然这只是一项自动化任务,为什么不简单地只添加所需的文件呢?更换

git add .

带有

git add config.xml

git将不必遍历整个项目树。

如果你想在没有加载未跟踪文件的情况下显示回购的状态,请使用

git status -uno

EDIT:当然,您必须在要添加的config.xml所在的目录中;如果要在当前目录的子目录中添加所有config.xml,请使用

git add */config.xml

好吧,你至少可以通过使用双星号来缩短你的.gitignore:

# other stuff here
**/config-history

它将在任何路径中匹配config-history

相关内容

最新更新