concretecms/incremental-filter-branch

用于以增量方式调用 git filter-branch 的 Shell 脚本

1.0.3 2023-11-29 18:09 UTC

This package is auto-updated.

Last update: 2024-08-29 19:43:37 UTC


README

TravisCI Build Status

简介

git filter-branch 是一个真正不错的 git 功能。例如,它允许像 subtree-splitting 这样的复杂操作。

当仓库中包含大量提交时,可能会出现问题:此操作可能需要很长时间。

幸运的是,git 的最新版本允许我们以增量方式执行此操作:第一次调用 filter-branch 仍然需要一些时间,但后续调用可以非常快。

要求

  • git 2.16.0 或更高版本
  • 常见命令(sedgrepmd5sumcut 等)

用法

获取脚本并使用 --help 选项阅读语法。

示例

./bin/incremental-git-filterbranch \
    --branch-whitelist 'develop master rx:release\/.*' \
    --tag-blacklist 'rx:5\..*' \
    --tags-plan all --tags-max-history-lookup 10 \
    https://github.com/concrete5/concrete5.git \
    '--prune-empty --subdirectory-filter concrete' \
    git@github.com:concrete5/concrete5-core.git

法律事宜

自行承担风险。使用 MIT 许可证

致谢

特别感谢 Ian Campbell 实现 git 的 --state-branch 选项,以及他关于如何使用它的提示。这个脚本只因为他(如果它不起作用,我将是唯一需要负责的人)。