添加composer git:split 命令,用于轻松将git仓库分割成多个。


README

GitSplit组件提供命令,使用splitsh-lite脚本和其他工具将单仓库分割。

用法

GitSplit的第一个实现是DevShop本身。查看OpenDevShop代码以获取使用示例。

  1. 将包添加到项目的composer.json

    composer require devshop/git-split --dev  
    

    https://github.com/opendevshop/devshop/blob/1.x/composer.json#L72

  2. 将旧版仓库导入子文件夹

    如果组件仓库已存在,您可以使用git subtree命令将其合并

    git subtree add --prefix=$PATH_IN_REPO $GIT_URL $BRANCH
    

    例如,当我们合并Drupal.org的"devmaster"安装配置文件时

    git subtree add --prefix=devmaster https://git.drupalcode.org/project/devmaster.git 7.x-1.x
    

    https://github.com/opendevshop/devshop/tree/1.x/devmaster

  3. 添加extra.git-splits

    将二级仓库信息添加到主devshop/composer.json文件的config.git-split.repos部分。

    "extra": {
        "git-split": {
            "repos": {
                "devmaster": "git@github.com:opendevshop/devmaster.git"
            }
        }
    }
  4. 每次有新代码时,运行命令composer git:split

    查看DevShop GitHub Action "git.yml"文件,了解如何运行composer git:split以将代码推送到多个远程位置,包括不同的github组织和drupal.org,使用SSH密钥

    https://github.com/opendevshop/devshop/blob/1.x/.github/workflows/git.yml#L64

资源

致谢

splitsh-lite 是一个第三方shell脚本,当使用此组件时安装。

https://github.com/splitsh/lite 查找源代码和许可证。