【调试笔记-20240723-Linux-gitee 仓库同步 github 仓库,并保持所有访问链接调整为指向 gitee 仓库的 URL】

调试笔记-系列文章目录

调试笔记-20240723-Linux-gitee 仓库同步 github 仓库,并保持所有访问链接调整为指向 gitee 仓库的 URL


文章目录

  • 调试笔记-系列文章目录
    • 调试笔记-20240723-Linux-gitee 仓库同步 github 仓库,并保持所有访问链接调整为指向 gitee 仓库的 URL
  • 前言
  • 一、调试环境
    • 操作系统:Windows 10 专业版
    • 调试环境
    • 调试目标
  • 二、调试步骤
    • 实现步骤
      • 1、github 上创建仓库
      • 2、在 github 仓库上创建 gitee 分支
      • 3、在 gitee 上导入 github 的仓库
      • 4、使用本工具完成 git 上 gitee 分支对 main 分支的同步
      • 5、gitee 仓库定期同步 github 仓库
    • 工作原理
  • 三、应用场景
    • gitee 仓库同步 github 仓库,并保持 URL 指向自己仓库的地址
  • 四、参考资料
  • 总结


前言

本文记录在 Windows 的 WSL 环境下使用 shell 脚本工具实现 gitee 仓库同步 github 仓库,并保持所有访问链接调整为指向 gitee 仓库的 URL。

实验使用的电脑如下:

CPU:

Intel Core i5 8265U

操作系统:

Microsoft Windows 10  Professional (x64), Version 22H2, Build 19045.4412

一、调试环境


操作系统:Windows 10 专业版

操作系统详细信息如下:

Microsoft Windows 10  Professional (x64), Version 22H2, Build 19045.4412

调试环境

  • Windows 系统下安装 WSL Ubuntu 22.04 LTS 版本,shell 脚本调试在此 WSL 环境中进行。

参考
【安装笔记-20240520-Windows-自定义 WSL2 安装位置】
【调试笔记-20240522-Windows-WSL 修改已安装发行版名称】


调试目标

实现 gitee 仓库同步 github 仓库,并保持所有访问链接调整为指向 gitee 仓库的 URL。

gitee 仓库:
在这里插入图片描述

github 仓库:

在这里插入图片描述


二、调试步骤

参考 【https://gitee.com/david921518/dev-tools/tree/gitee/github-merge】

实现步骤

以本仓库为例,实现 gitee 同步 github 的仓库,并保证访问 gitee.com 网站时所有 URL 调整到指向 gitee.com 的仓库路径

1、github 上创建仓库

github 上创建仓库后,默认生成 main 的主分支

2、在 github 仓库上创建 gitee 分支

gitee 分支用于给 gitee.com 的仓库访问,此分支上所有指向 github.com 仓库的 URL 都将修改为指向 gitee.com 的仓库

3、在 gitee 上导入 github 的仓库

导入 github 仓库后,在 gitee 的“管理”页修改默认分支为 gitee

4、使用本工具完成 git 上 gitee 分支对 main 分支的同步

5、gitee 仓库定期同步 github 仓库

工作原理

1、 本地主机上建立两个工作目录,/main/ 目录保存 github 仓库的 main 分支,/gitee/ 目录保存 github 仓库的 gitee 分支;

2、 更新 /main/ 目录后,使用字符串替换工具将指向 github.com 的 URL 修改为指向 gitee.com 的 URL

3、 复制修改后的 /main/ 目录文件内容到 /gitee/ 目录中

4、 将 /gitee/ 目录中的内容推送到 github 仓库的 gitee 分支

5、 触发 gitee.com 上对应的仓库进行 github.com 的仓库同步动作,实现两个 git 仓库同步

初始化工作目录的脚本 setup.sh 如下:


#!/bin/shgit clone -b main git@github.com:david921518/dev-tools.git main
git clone -b gitee git@github.com:david921518/dev-tools.git gitee
git clone -b gitlab git@github.com:david921518/dev-tools.git gitlab

URL 替换的脚本 replace_gitee.sh 如下:


#!/bin/sh# tested on Ubuntu 22.04github_url='https://github.com/david921518/dev-tools/blob/master'
gitee_url='https://gitee.com/david921518/dev-tools/blob/gitee'
ignore_files=("./github-merge/setup.sh" "./github-merge/replace_gitee.sh" "./LICENSE")rm -rf ./main_tmp
mkdir -p ./main_tmprm -rf ./gitee/*cp -af ./main/* ./main_tmp/
cp -af ./main/* ./gitee/# sed 's$https://github.com/david921518/dev-tools/blob/master$https://gitee.com/david921518/dev-tools/blob/gitee$' ./main/github-merge/README.md > ./gitee/github-merge/README.mdcd ./main_tmp/
files=$(find .)
cd ../for filename in $files
doif [ -f ./main_tmp/$filename ]; thenecho "./main_tmp/$filename is regular file"matched='false';for elem in "${ignore_files[@]}"; doif [[ "$elem" == "$filename" ]]; thenmatched='true';fidoneif [[ "$matched" == 'false' ]]; thenecho "replace $filename"sed "s^$github_url^$gitee_url^" "./main_tmp/$filename" > "./gitee/$filename"elseecho "ignore $filename"fielseecho "./main_tmp/$filename is not regular file"fi
donerm -rf ./main_tmp/# git commit to github
cd ./gitee/
git add *
git commit -a -m "merge with main branch"
git push origin gitee
cd ../

三、应用场景

gitee 仓库同步 github 仓库,并保持 URL 指向自己仓库的地址


四、参考资料

1、GitHub 分支合并工具

2、安装笔记-20240520-Windows-自定义 WSL2 安装位置

3、调试笔记-20240522-Windows-WSL 修改已安装发行版名称


总结

本文记录在 Windows 的 WSL 环境下使用 shell 脚本工具实现 gitee 仓库同步 github 仓库,并保持所有访问链接调整为指向 gitee 仓库的 URL。

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

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

相关文章

Langchain: 语言学习的新篇章

在当今全球化的世界中,语言学习已成为许多人追求的目标。Langchain是一种新兴的语言学习平台,它利用最新的技术,为用户提供了一个全新的语言学习体验。本文将介绍Langchain的基本概念、核心特性、学习方法以及如何通过Langchain提高语言学习效…

Ubuntu20.04版本升级openssh9.8p1方法

一、问题描述: 8.5p1 和 9.7p1 之间的openssh版本漏洞可能会导致linux系统以root身份进行RCE,所以需安装最新版本 二、解决方法: 将当前openssh版本升级到最新的版本即openssh-9.8p1版本,OpenSSL大版本升级且OpenSSH有新稳定版本…

微调大型语言模型 (LLM) 和 RAG 的区别、优势和劣势

本篇文章有ChatGPT生成,觉得说的有理,给予刊登。 微调大型语言模型 描述: 微调是指在一个预训练的语言模型基础上,使用特定任务或领域的特定数据集进行进一步训练。这一过程会更新模型的权重,以提高其在新数据集上…

Unity Shader入门精要——笔记

第1篇 基础篇 第2章:渲染流水线 GPU流水线 顶点数据–> 几何阶段:(顶点着色器–> 曲面细分着色器–>几何着色器–>裁剪–>屏幕映射)–>光栅化阶段(三角形设置–>三角形遍历–>片元着色器–…

Zabbix监控应用

一.监控tomcat 1.在tomcat服务器上安装zabbix-agent服务 [rootnode2 etc]#vim zabbix_agentd.conf 94 Server192.168.240.13 #指向当前zabbix server ##### Passive checks related #被动检查相关配置### Option: ListenPort ListenPort10050 #监听端口 默认的无需修改11…

SPF配置教程:如何安全构建邮件发送策略?

SPF配置教程的步骤详解!SPF记录配置方法策略有哪些? SPF通过允许域名所有者指定哪些主机可以代表该域发送邮件,从而减少电子邮件欺诈和垃圾邮件的风险。AokSend将详细介绍SPF配置教程,并指导您如何安全地构建邮件发送策略。 SPF…

《白话机器学习的数学》第4章——评估

4.1模型评估 1.由于像多重回归这样的问题会导致无法在图上展示,所以需要能够够定量地表示机器学习模型的精度。 4.2交叉验证 4.2.1回归问题的验证 1.把获取的全部训练数据分成两份:一份用于测试,一份用于训练。然后用前者来评估模型。 一般…

C# 数组常用遍历方式

// 假设数组Point[] points new Point[2];// 第一种遍历 forfor (int i 0; i < points.Length; i){Point p points[i];Console.WriteLine($"X{p.X},y{p.Y}");}// 第二种遍历 foreachforeach (Point p in points){Console.WriteLine($"X{p.X},y{p.Y}"…

TCP三次握手和四次挥手的理解

三次握手 第一次握手&#xff1a; 客户端发出 请求报文其中SYN应1&#xff0c;选择一个序列号x 第二次握手&#xff1a; 服务端接收到之后回复 确认报文&#xff0c;其中SYN应1&#xff0c;ACK1&#xff0c;确认号是x1&#xff0c;同时为自己初始化序列号y 第三次握手&…

spring —— AOP(前置通知)

一、pom 中需要增加的依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>6.0.2</version> </dependency> <dependency><groupId>org.springframework</g…

Hadoop架构

一、案列分析 1.1案例概述 现在已经进入了大数据(Big Data)时代&#xff0c;数以万计用户的互联网服务时时刻刻都在产生大量的交互&#xff0c;要处理的数据量实在是太大了&#xff0c;以传统的数据库技术等其他手段根本无法应对数据处理的实时性、有效性的需求。HDFS顺应时代…

ubuntu22.04,AX101网卡,打不开蓝牙

安装完ubuntu 22.04后&#xff0c;发现蓝牙可以识别&#xff0c;但是打不开。查看/var/log/dmesg日志&#xff1a; [ 2.587972] kernel: Bluetooth: hci0: Failed to load Intel firmware file intel/ibt-1040-1050.sfi (-2) [ 2.589252] kernel: Bluetooth: hci0: Fail…

Linux(CentOS)的“应用商城” —— yum

Linux&#xff08;CentOS&#xff09;的“应用商城” —— yum 关于 yum 和软件包Linux 系统&#xff08;CentOS&#xff09;的生态yum 相关操作yum 本地配置yum 安装 lrzsz.x86_64 关于 yum 和软件包 首先 yum 是软件下载安装管理的客户端&#xff0c;类似各种手机里的“应用…

WEB前端10- Fetch API(同步/异步/跨域处理)

Fetch API Fetch API 可以用来获取远程数据&#xff0c;用于在 Web 应用程序中发起和处理 HTTP 请求。它基于 Promise&#xff0c;提供了一种简单而强大的方式来处理网络通信&#xff0c;替代了传统的 XMLHttpRequest。 Promise对象 Promise 对象是 JavaScript 中处理异步操…

阿里云OSS对象存储的项目实战操作

目录 一.什么是阿里云OSS&#xff1f; 二.阿里云OSS的使用&#xff1a; 1.导入依赖到 pom.xml 配置文件&#xff1a; 2.在application.yml配置文件中配置OSS的相关信息&#xff1a; 3.在properties包下创建OSS的配置属性类来封装配置文件的配置项&#xff1a; 4.在utils包…

0723,UDP通信(聪明小辉聪明小辉),HTTP协议

我就是一个爱屋及乌的人&#xff01;&#xff01;&#xff01;&#xff01; #include "network_disk_kai.h" 昨天的epoll&#xff1a; 可恶抄错代码了 epoll_s.csockect return listenfdsetsockoptsockaddr_in bind listenfd & serveraddr…

Ubuntu 中默认的 root 用户密码

场景&#xff1a;想要切换root用户&#xff0c;发现得输入密码&#xff0c;以为是以前设置过然后一直尝试都是错误【认证失败】最后发现根本没设置过root用户&#xff0c;默认会随机生成root用户的密码&#x1f605; Ubuntu 中默认的 root 密码是随机的&#xff0c;即每次开机都…

用51单片机或者stm32能否开发机器人呢?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;能的。但是由于单片机和st…

MATLAB练习题——矩阵(2)

逻辑运算 a [5 0.2 0 -8 -0.7 ]&#xff0c;在进行逻辑运算时&#xff0c;a 相当于什么样的逻辑量。 相当于 a[1 1 0 1 1] 角度运算 在 sin(x)运算中&#xff0c;x 是角度还是弧度&#xff1f; 在 sin(x)运算中&#xff0c;x 是弧度&#xff0c;MATLAB 规定所有…

盘点2024年大家都在使用的AI智能写作工具

在科技发达的现在社会&#xff0c;AI已经悄悄的渗入我们生活的各种角落。不知道你有没有尝试过用ai智能写作来完成一些文章创作呢&#xff1f;这次我介绍几个可以提升效率的ai智能写作工具给你试试吧。 1.笔&#xff5c;灵AI写作 CSDN 传送门&#xff1a;https://ibiling.cn…