使用python批量修改git远程地址
一、代码
代码如下(示例):
import os
import subprocess
print('开始替换')
def replaceUrl(old_url):
"""自定义替换逻辑"""
old_host = '192.168.10.11'
new_host = '192.168.10.10'
return old_url.replace(old_host, new_host)
def traverse_directory(path):
for root, dirs, files in os.walk(path):
if '.git' in dirs:
process = subprocess.run('git remote -v', stdout=subprocess.PIPE, stderr=subprocess.STDOUT,cwd=root) # 获取远端URL
result = process.stdout.decode()
if result.splitlines():
old_url = result.splitlines()[0].replace('origin\t', '').replace(' (fetch)', '')
new_url = replaceUrl(old_url)
print(f"root:{root} old_url:{old_url} new_url:{new_url}")
subprocess.run(f'git remote set-url origin {new_url}', cwd=root)
subprocess.run('git pull',cwd=root)
traverse_directory('./')