operations/git-split

添加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组织和使用SSH密钥的drupal.org)的示例

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

资源

致谢

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

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