【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
实际效果演示(涉及实际项目,作马赛克处理)
相关推荐
涛涛ing19 小时前
狂揽2.4万星标:一行命令,AI会自己找技能了
前端
Csvn19 小时前
🚨 JSON.stringify 的 6 个隐藏坑:为什么你的数据序列化后"消失"了?
前端
aircrushin19 小时前
Claude 5 之后,上下文工程该做减法了
前端·人工智能·后端
huabuyu19 小时前
CLS 自动化归因及自愈:让系统自己定位根因、修复并验证
前端·javascript
C++、Java和Python的菜鸟19 小时前
第13章 前端Web实战(Tlias案例)
前端·javascript·vue.js
用户69190268133919 小时前
React 组件间通信全解析:从父子到跨级
前端·javascript
echoVic19 小时前
同一个 bug,我在 WebGPU 渲染器里犯了两轮:一帧内多次写同一块 buffer
前端·webgl·图形学
胡萝卜术19 小时前
数据主权与渲染防线:从受控组件到性能优化的完整图景
前端·javascript·面试
DFT计算杂谈19 小时前
FeSe超薄膜在CaF2衬底上的电子结构DFT研究
java·服务器·前端
BreezeJiang19 小时前
父组件一更新,子组件就必须跟着更新吗?从 memo 走到 useCallback
前端·javascript