【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
实际效果演示(涉及实际项目,作马赛克处理)
相关推荐
三天不学习1 分钟前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194051 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风2 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn3 小时前
框架性能优化
前端
回眸&啤酒鸭4 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户69371750013844 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员4 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端
小兔子5 小时前
Python 的 GIL 与 free-threading:3.13 之后「去 GIL」走到哪一步了
前端
IT_陈寒5 小时前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端
guslegend6 小时前
脚手架原理与本地调试:从 bin 软链接到 npm link
前端·npm·node.js·脚手架·前端工程化