【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
实际效果演示(涉及实际项目,作马赛克处理)
相关推荐
hoLzwEge15 小时前
团队协作的隐藏利器:.vscode 完全指南
前端·前端框架
labixiong15 小时前
TypeScript 7.0 编译器用 Go 重写,速度暴增10倍——背后到底做了什么?
前端·javascript·go
WaywardOne15 小时前
Flutter组件化方案(AI总结)
前端·flutter·ai编程
玉宇夕落15 小时前
原子化编程”:Tailwind CSS 核心原理
前端
不怕犯错,就怕不做15 小时前
GIT的简单打patch应用format-patch and git am
linux·git·全文检索
是小李呀15 小时前
解决“Error: The project seems to require yarn but it‘s not installed”报错
前端
weedsfly15 小时前
一个电商价格计算案例,带你学会前端开发中的责任链模式
前端·javascript·面试
__sjfzllv___15 小时前
在职前端Leader学习/转行 AI Agent -DAY10
前端
沉迷学习日益消瘦15 小时前
8 UI 组件库与设计系统:Token 驱动 + 暗色模式 + 4 种主题色
前端
Byron Loong15 小时前
【Git】如何检查 Ubuntu 系统上 gitLab 是否开启
git·ubuntu·gitlab