批量替换和修改Git远端地址
在git bash中执行
1 | find . -name ".git" -type d -exec sed -i 's#旧地址#新地址#g' {}/config \; |
将替换所有子目录的git远端地址。
说明:
-type d只匹配目录。子模块(submodule)或工作树(worktree)里的.git是文件而不是目录,加该过滤可以避免误处理。- sed 的分隔符用
#而不是默认的/,因为 Git 远端地址里通常含有/(如https://...或git@.../...),用默认分隔符会冲突。 - 上面是 Linux / Git Bash 的写法。macOS 自带的是 BSD sed,
-i必须接一个备份后缀(空串表示不备份),否则会报错。macOS 写法:
1 | find . -name ".git" -type d -exec sed -i '' 's#旧地址#新地址#g' {}/config \; |