【git】git远程仓库迁移后 本地批量修改远程地址

当公司迁移远程git仓库时,我们需要修改git仓库的远程仓库的地址,可以一个一个的修改,但是如果项目比较多并且改的东西都一样的话,使用脚本修改就比较方便了。

预备知识:

查看远程仓库地址:
git remote -v

node@ykt03:~/rainclassroom/egg-web$ git remote -v

origin http://10.9.8.99/nodejs/egg-web.git (fetch)

origin http://10.9.8.99/nodejs/egg-web.git (push)

获取远程仓库地址:
git remote get-url origin

node@ykt03:~/rainclassroom/egg-web$ git remote get-url origin

http://10.9.8.99/nodejs/egg-web.git

这里需要考虑特殊情况:

即:有些git版本没有 git remote get-url origin 函数,获取不了原来的仓库地址的格式,就通过变通的方式获取。

git remote -v | head -n 1 | cut -d " " -f 1 | cut -c 8-

解读:

  • 通过 git remote -v 获取两行的远程信息
  • 通过 head -n 1 只取第一行
  • 通过 cut -d " " -f 1 得到 origin http://10.9.8.99/nodejs/egg-web.git, 因为 originhttp 中间的可能不是个空格
  • 通过 cut -c 8- 得到 http://10.9.8.99/nodejs/egg-web.git
修改本地仓库的远程地址:

方法一:

git remote set-url origin

node@ykt03:~/rainclassroom/egg-web$ git remote set-url origin http://10.9.8.99/nodejs/egg-web.git

方法二:

也可以通过 git config -e,进入编辑器修改,这里可以修改更多东西。 查看git配置也可以通过 git config -l 查看,查看全局配置可以通过 git config --global -l 查看。

实战:

实战一:通过批量替换ip的方式来实现修改本地仓库对应的远程地址

首先进入包含所有项目的那个文件夹。 然后执行下面3行脚本即可。

export GIT_HOST_OLD=117.79.83.55:8088
export GIT_HOST=10.9.8.99
ls -l -d */ | awk '{print $9}' | xargs -I % bash -c ' cd % && if [ -d ".git" ]; then url=$(git remote get-url origin); git remote set-url origin ${url/$GIT_HOST_OLD/$GIT_HOST}; fi; '

解读:

先通过两个 export 设置两个变量,使其可以在子bash中使用。

第三行的解释如下:

  • 通过 ls -l -d */ 列出所有目录
  • 通过 awk '{print $9}' 找到目录名称
  • 通过 xargs 将输出作为参数传给 bash -c(这里使用bash是因为使用sh的话在有些环境执行后面的替换${var-a/var-b/var-c}的时候会失败)。并通过 xargs -I %% 作为输入的占位符传给后面的 bash -c 命令。
  • 后面的就是 bash 命令了,先切换到该次输入值的目录,如果有 .git 文件夹,就先获取原来的git仓库地址,然后设置仓库地址为将原来地址的host:port部分替换后的变量。这样容易保留原来的格式。
实战二:用变量来存储相同的地址

把相同的仓库地址放到 /etc/hosts 中,替换仓库地址为其中的变量即可,而不用具体的ip的值,以后仓库再改变的话,只需要改 /etc/hosts 即可。

export GIT_HOST_OLD=10.9.8.99
export GIT_HOST=gitlab
ls -l -d */ | awk '{print $9}' | xargs -I % bash -c ' cd % && if [ -d ".git" ]; then url=$(git remote -v | head -n 1 | cut -d " " -f 1 | cut -c 8-);git remote set-url origin ${url/$GIT_HOST_OLD/$GIT_HOST}; fi; '

参考 /etc/hosts 中的内容如下:

➜  ~ cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1	localhost
255.255.255.255	broadcasthost
::1             localhost192.168.9.198 hit.xuetangx.com
192.168.9.198 studio-hit.xuetangx.com192.168.9.187 fudan.xuetangx.com
192.168.9.187 studio-fudan.xuetangx.com
192.168.9.246	fzu.xuetangx.com
192.168.9.246	studio-fzu.xuetangx.com
xx.80.178.83  build.ykt.io
192.168.9.99 gitlab

参考:https://juejin.cn/post/6885164439146872845

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/652614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

八种Flink任务告警方式

目录 一、Flink应用分析 1.1 Flink任务生命周期 1.2 Flink应用告警视角分析 二、监控告警方案说明 2.1 监控消息队中间件消费者偏移量 2.2 通过调度系统监控Flink任务运行状态 2.3 引入开源服务的SDK工具实现 2.4 调用FlinkRestApi实现任务监控告警 2.5 定时去查询目标…

无人机在三维空间中的转动问题

前提 这篇博客是对最近一个有关无人机拍摄图像项目中所学到的新知识的一个总结,比较杂乱,没有固定的写作顺序。 无人机坐标系旋转问题 上图是无人机坐标系,绕x轴是翻滚(Roll),绕y轴是俯仰(Pitch),绕z轴是偏航(Yaw)。…

力扣日记1.27-【回溯算法篇】131. 分割回文串

力扣日记:【回溯算法篇】131. 分割回文串 日期:2023.1.27 参考:代码随想录、力扣 131. 分割回文串 题目描述 难度:中等 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可…

D. Epic Transformation(堆+贪心)

思路&#xff1a;我们删的策略是从次数多的数开始删&#xff0c;每次取两种不同的数&#xff0c;每种删去一个&#xff0c;然后放回堆中。 代码&#xff1a; void solve(){int n;cin >> n;map<int,int>mp;for(int i 1;i < n;i ){int x;cin >> x;mp[x] …

Java笔记 --- 四、异常

四、异常 Java.lang.Throwable Error Exception&#xff08;异常&#xff09; 异常的作用 异常的处理方式 JVM默认的处理方式 捕获异常&#xff08;自己处理&#xff09; try里面没有出现异常&#xff0c;就不会运行catch里面的代码 如果出现多个异常&#xff0c;需要多个c…

MySQL中一条更新语句是怎么执行的?

假设&#xff0c;创建一个InnoDB表t并插入数据如下&#xff1a; CREATE TABLE t (id int(11) NOT NULL,a int(11) DEFAULT NULL,b int(11) DEFAULT NULL,PRIMARY KEY (id),KEY a (a) ) ENGINEInnoDB; insert into t values(0,0,0),(5,5,5), (10,10,10),(15,15,15),(20,20,20),…

测试用例相关问题

1.什么是测试用例 测试用例是指对一项特定的软件产品进行测试任务的描述&#xff0c;体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等&#xff0c;最终形成文档。简单地认为&#xff0c;测试用例是为某个特殊目标而…

【归并排序】【图论】【动态规划】【 深度游戏搜索】1569将子数组重新排序得到同一个二叉搜索树的方案数

本文涉及知识点 动态规划汇总 图论 深度游戏搜索 归并排序 组合 LeetCoce1569将子数组重新排序得到同一个二叉搜索树的方案数 给你一个数组 nums 表示 1 到 n 的一个排列。我们按照元素在 nums 中的顺序依次插入一个初始为空的二叉搜索树&#xff08;BST&#xff09;。请你统…

CI/CD Pipeline的构建流程,如何在工作中正确应用它?

前言 大家好&#xff0c;我是chowley&#xff0c;今天来讲解一下CI/CD这个热门概念。 在当今快节奏的软件开发环境中&#xff0c;CI/CD&#xff08;Continuous Integration/Continuous Delivery&#xff09;已经成为提高开发效率、确保软件质量的关键实践。 本文将介绍CI/CD…

精选6款前端动画特效分享(附在线演示)

分享6款好玩的前端动画特效 其中有CSS动画、canvas动画、js小游戏等等 下方效果图可能不是特别的生动 那么你可以点击在线预览进行查看相应的动画特效 同时也是可以下载该资源的 CSS日食与太阳碰撞动画 一款基于CSS实现的日食动画特效 碰撞物体会从右侧旋转向太阳靠近重合而后…

程序员成被裁最多的职业,互联网成围城,“转码”神话破灭?

随着互联网蓬勃发展&#xff0c;“转码”一直被视为找不到工作时的灵丹妙药。所谓转码&#xff0c;就是转行成为程序员。专业太偏&#xff1f;没关系&#xff0c;可以转码。失业了&#xff1f;没关系&#xff0c;可以转码。不知道该做什么工作&#xff1f;那就转码吧。程序员薪…

idea提交代码到git或svn上时,怎么忽略.class、.iml文件和文件夹等不必要的文件

第一种方法 在Setings–> Editor --> File Types -->Ignore files and folders中添加需要忽略的文件和文件夹&#xff1a; .idea 忽略 .idea 的文件或者文件夹 *.iml 忽略后缀为iml的文件 target 忽略target 文件或目录以及目录下的所有文件注…

Linux学习之文件系统与动静态库

目录 一&#xff0c;文件的管理 什么是磁盘&#xff1f; 磁盘的逻辑抽象结构 格式化 inode 挂载 软硬链接 二&#xff0c;动静态库 什么是动静态库&#xff1f; 1.站在库的制作者角度 静态库&#xff1a; 制作一个静态库 2.站在静态库使用者的角度 动态库 作为制…

Go语言基础之反射

1.变量的内在机制 Go语言中的变量是分为两部分的: 类型信息&#xff1a;预先定义好的元信息。值信息&#xff1a;程序运行过程中可动态变化的。 2.反射介绍 反射是指在程序运行期间对程序本身进行访问和修改的能力。程序在编译时&#xff0c;变量被转换为内存地址&#xff…

80.网游逆向分析与插件开发-背包的获取-自动化助手显示物品数据1

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;升级Notice类获得背包基址-CSDN博客 码云地址&#xff08;ui显示角色数据 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;3be017de38c50653b…

操作日志应记录编辑的前后内容变化

总体思路是增加一个注解类&#xff0c;将注解加到要进行记录变化的Java类属性上却可。 上代码&#xff1a; 1. 实现注解类&#xff1a; Target(ElementType.FIELD) Retention(RetentionPolicy.RUNTIME) public interface FieldName {String value();boolean isIgnoreNull()…

day34_js

今日内容 0 复习昨日 1 事件 1.1 事件介绍 1.2 事件绑定方式 1.3 不同事件的演示 2 DOM操作 2.1 概述 2.2 查找元素 2.3 元素内容的查找和设置 2.4 元素属性的查找和设置 2.5 元素CSS样式的查找和设置 2.6 创建元素 2.7 创建文本节点 2.8 追加元素 2.9 删除元素 3 案例练习 0 复…

TCP 异常断开连接【重点】

参考链接 https://xiaolincoding.com/network/3_tcp/tcp_down_and_crash.html https://xiaolincoding.com/network/3_tcp/tcp_unplug_the_network_cable.html#%E6%8B%94%E6%8E%89%E7%BD%91%E7%BA%BF%E5%90%8E-%E6%9C%89%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%93 关键词&#xff1a…

无际线复选框

效果演示 实现了一个网格布局&#xff0c;其中每个网格是一个复选框&#xff0c;可以选择是否显示。每个复选框都有一个漂浮的天花板&#xff0c;表示它是一个房间的天花板。每个房间的天花板都有一个不同的形状和颜色&#xff0c;分别对应不同的房间。整个页面的背景是一个由两…

echarts多个折线图共用X轴,实现tooltip合并和分离

echarts共享X轴案例&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</…