【Git 操作笔记】第1期--云代码仓库更换服务商,本地如何批量更新对应项目的git地址(持续更新...)

Git 操作笔记

【第1期】云代码仓库更换服务商,本地如何批量更新对应项目的git地址

背景:公司原先的云代码仓库过期,要更换另外的服务商(从腾讯到阿里云)。因此本地已经拉取的项目也需要同步更新对应的git地址,不然代码提交不上(原地址已被锁定,无法提交)

解决方案

通过脚本检测本地代码项目的.git目录,批量更新对应的git前缀地址。

tip 这里可以直接更换前缀的前提是,云代码仓库迁移时,保留原先的代码仓库的相对路径,比如原先是 tengxuncode.com/xxxx/xxx/de... ---> 迁移后应该是 aliyuncode.com/xxxx/xxx/de... ,这里的 /xxxx/xxx/demo-proj.git是不变的,保持相对路径不变,替换起来逻辑会比较简单,不然就得做额外的处理了

接下来就是执行脚本了

tip 注意 下面的旧、新地址前缀替换成你们自己实际的地址

bash 复制代码
#!/bin/bash

# 1) # 设置旧、新地址前缀
export GIT_OLD="https://tengxuncode.com"
export GIT_NEW="https://aliyuncode.com"

# 2) 递归处理所有仓库
find . -type d -name '.git' | while read -r git_dir; do
  project_dir=$(dirname "$git_dir")
  cd "$project_dir" || continue

  old_url=$(git remote get-url origin 2>/dev/null || git remote -v | awk '/origin/ {print $2}' | head -n1)
  [ -z "$old_url" ] && continue

  # 3) 兼容旧版 Bash 的替换
  new_url=$(printf '%s\n' "$old_url" | sed "s|$GIT_OLD|$GIT_NEW|")

  # 4) 如果确实变了才更新
  if [ "$old_url" != "$new_url" ]; then
    git remote set-url origin "$new_url"
    echo "✅ 已更新:$project_dir -> $new_url"
  fi

  cd - >/dev/null
done
使用方法
  1. 把上述脚本保存为 migrate-git.sh,或直接复制到终端。
  2. 在「包含所有仓库的最顶层目录」里执行:
bash 复制代码
bash migrate-git.sh
实际效果演示(涉及实际项目,作马赛克处理)
相关推荐
恋猫de小郭9 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
崔庆才丨静觅15 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606116 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了16 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅16 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅17 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
李少兄17 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
崔庆才丨静觅17 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment17 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅17 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端