【问题标题】:Git ignore how to only take the "last" file by nameGit忽略如何仅按名称获取“最后一个”文件
【发布时间】:2021-04-06 06:33:35
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您能否将其拆分为 models/archive 和 models/current 并实现一个逻辑,将 current 移动到新模型上的存档?
  • 这些目录是否包含项目生成的文件?您不应该将它们与代码保存在同一个存储库中(或者您根本不应该将它们保存在存储库中)。

标签: git gitignore feasibility


【解决方案1】:

我会重新调整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/*```

【讨论】:

    猜你喜欢
    • 2021-06-19
    • 2018-08-31
    • 1970-01-01
    • 2020-05-14
    • 2018-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    相关资源
    最近更新 更多