【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
实际效果演示(涉及实际项目,作马赛克处理)
相关推荐
方安乐14 分钟前
vite+vue+js项目使用ts报错
前端·javascript·vue.js
韩立233316 分钟前
Vue 3.5 升级指南
前端·vue.js
子兮曰24 分钟前
🚀别再乱写package.json了!这些隐藏技巧让项目管理效率提升300%
前端·javascript·npm
我叫汪枫29 分钟前
Spring Boot图片验证码功能实现详解 - 从零开始到完美运行
java·前端·javascript·css·算法·html
小桥风满袖33 分钟前
极简三分钟ES6 - ES8中async,await
前端·javascript
一直在学习的小白~1 小时前
node_modules 明明写进 .gitignore,却还是被 push/commit 的情况
前端·javascript·vue.js
前端小超超2 小时前
如何配置capacitor 打包的ios app固定竖屏展示?
前端·ios·web app
nightunderblackcat2 小时前
新手向:从零理解LTP中文文本处理
前端·javascript·easyui
kyle~2 小时前
python---PyInstaller(将Python脚本打包为可执行文件)
开发语言·前端·python·qt
User:你的影子2 小时前
WPF ItemsControl 绑定
开发语言·前端·javascript