【问题标题】:Can I use GIT Bash to checkout a particular branch on all my repos at once?我可以使用 GIT Bash 一次在我的所有 repos 上检查一个特定的分支吗?
【发布时间】:2018-07-26 17:26:18
【问题描述】:

在我的工作地点,我们的项目有多个存储库,并且每个 sprint 我们都会创建一个新的发布分支,并且每次检查它们已经变得很老了。是否有一个 Git 命令或脚本可用于一次在每个 repo 上签出一个特定的分支,比如 9.5?

【问题讨论】:

  • 你有多个repos是什么意思?你是说你在你的机器上多次克隆了同一个仓库?或者您是否有多个代码库,每个代码库都用于单独的项目,它们都遵循相同的版本控制方案和时间表?

标签: git git-bash


【解决方案1】:

在工作中,我将所有公司存储库保存在一个目录中,其中包含一个名为 forall 的脚本:

#!/bin/bash
for repo in */ ; do
    (   cd "$repo"
        "$@"
    )
done

我可以cd 到目录并运行类似的命令

./forall git fetch upstream
./forall git checkout relase9.5

在此之前,您可以验证

./forall git status

报告没有本地更改。另外,在运行 pullreset 之前,请使用

./forall git branch | grep \*

检查所有存储库是否在同一个分支上。

【讨论】:

  • 如此优雅,很好
【解决方案2】:

不,git 没有任何命令可以按照您在此处描述的方式与多个存储库交互。您需要编写一个 .bat (Windows) 或 .sh (Linux 或 Git Bash) 脚本来执行此操作。

【讨论】:

    猜你喜欢
    • 2016-01-09
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2020-04-06
    • 2019-03-03
    • 2016-08-19
    • 1970-01-01
    • 2014-01-18
    相关资源
    最近更新 更多