如何编写shell脚本实现git一次提交推送到多个远程仓库
问题解答
一、Git Remote 配置调整说明
你当前的远程仓库配置不需要新增额外的远程节点,仅需要修正1处笔误即可正常使用:
- 你当前
origin远程的推送地址存在错误,实际应为https://git.heroku.com/it-backend.git,执行以下命令修正:git remote set-url origin --push https://git.heroku.com/it-backend.git
修正后你可用的三个推送目标如下:
backend:对应GitHub仓库generic:对应Heroku generic-backend 仓库origin:对应Heroku it-backend 仓库
二、Shell 脚本调整方案
你现有脚本中git push heroku master引用的heroku远程不存在,需要替换为实际的三个远程推送命令,同时可增加简单的异常判断避免无改动时报错,修改后的完整脚本如下:
#!/bin/bash echo "What is the commit message?" read commitMessage # 切换到项目目录,路径错误直接退出 cd ~/GitHub/project/backend || exit 1 git add . # 无工作区改动时提交会失败,直接退出不执行推送 git commit -am "$commitMessage" || exit 0 # 依次推送至三个远程仓库 git push backend master git push generic master git push origin master echo "所有仓库推送完成"
核心调整点
- 新增路径切换失败的退出逻辑,避免路径错误时执行无效Git命令
- 新增提交失败的退出逻辑,无改动时不会触发后续推送操作
- 替换原有的单条推送命令为三个对应远程仓库的推送命令,执行时会自动依次完成三个仓库的推送
内容的提问来源于stack exchange,提问作者user2371684
相关产品推荐
相关产品推荐

