iOS 工程化. 使用 Shell脚本批量创建不同仓库的git

274 阅读2分钟

在 iOS 开发中,如果pod 仓库很多时候, 每次更新需要手动创建很多个分支,浪费时间, 我们可以使用脚本批量创建不同仓库的git分支

1. 提高效率

如果你有大量的仓库需要创建同样的分支,使用脚本可以大大提高效率。你只需要运行一次脚本,就可以在所有的仓库中创建分支,而不是在每个仓库中手动创建分支。

2. 减少错误

人工操作容易出错,而脚本则可以保证在每个仓库中创建的分支名称、初始提交等信息完全一致。

3. 便于管理

当你需要在多个仓库中创建、切换或删除相同的分支时,使用脚本可以使你更方便地管理这些分支。

4. 自动化

通过脚本,可以实现一系列的自动化操作,如拉取最新代码、切换到特定分支、合并代码、推送代码等,进一步提高开发效率。

5. 可定制和可扩展

你可以根据需要定制脚本,添加更多的功能,如在创建分支后自动创建 pull request、在所有仓库中执行相同的 git 命令等。

6. 方便集成其他工具

你可以将这个脚本集成到其他工具中,如 CI/CD 工具,实现自动化的代码发布和部署。 总结来说,使用脚本批量创建分支可以提高开发效率,减少错误,便于管理,具有很高的灵活性和扩展性,是一种很实用的开发技巧。

#!/bin/bash

# 1. 创建一个包含所有 Git 仓库路径的数组
git_repos=(
    "/path/to/repo1"
    "/path/to/repo2"
    "/path/to/repo3"
    # ...
)

# 2. 遍历数组中的每个 Git 仓库路径
for repo in "${git_repos[@]}"; do
    echo "处理 Git 仓库: $repo"
    cd "$repo"

    # 3. 检查 Git 状态并丢弃所有修改
    git reset --hard
    git clean -fd

    # 4. 检查是否有 "release/2023_New_2302" 分支
    git fetch
    if git rev-parse --verify release/2023_New_2302 >/dev/null 2>&1; then
        # 5.2. 切换到 "release/2023_New_2302" 分支并更新
        git checkout release/2023_New_2302
        git pull
    else
        # 5.1. 从远端拉下 "release/2023_New_2302" 分支
        git checkout -b release/2023_New_2302 origin/release/2023_New_2302
    fi

    # 6. 检查是否有 "release/2023_New_Release_MR2302" 分支
    git fetch
    if git rev-parse --verify release/2023_New_Release_MR2302 >/dev/null 2>&1; then
        echo "分支 release/2023_New_Release_MR2302 已经存在"
    else
        # 7. 创建 "release/2023_New_Release_MR2302" 分支并推送到远程仓库
        git checkout -b release/2023_New_Release_MR2302
        if git push --set-upstream origin release/2023_New_Release_MR2302; then
            echo "分支 release/2023_New_Release_MR2302 创建成功"
        else
            echo "分支 release/2023_New_Release_MR2302 创建失败,可能已经存在"
        fi
    fi
done