首页 > 解决方案 > Git忽略如何仅按名称获取“最后一个”文件

问题描述

我有一个格式为: 的目录~/models/*/*,其中第二个*代表 220 个名为hmm0的目录hmm220

我只想在提交中包含最后一个目录,我已经设法使用一系列!和忽略行来处理 .gitignore 文件(这已经有效):

!models/
models/*
!models/*/
models/*/*
!models/*/hmm220/

但是,问题是目录的数量可以改变。例如,下次我可能有 240 个目录,命名为 fromhmm0hmm240。我想总是只取最后一个目录(并忽略以前的目录)。这可能吗,如果可以,怎么办?如果没有,是否有比每次更改目录数量时都更改 .gitignore 文件更好的解决方案?

标签: gitgitignorefeasibility

解决方案


我会重新调整models目录,以便保留重要的目录current并且不要同步档案。

然后,在您的代码中,您将实现类似(不工作 BASH ;) ):

archive_count=`ls -l | grep "^d" | wc -l`
mkdir /models/archive/hm$archive_count
mv  /models/current/* /models/archive/hm$archive_count/
models
    |-archive
        |-hm0
        |-hm1
    |-current
        |-current files

.gitignore
!/models/archive
/models/archive/*```

推荐阅读