news 2026/4/16 14:23:15

【git】git-transfer一行搞定仓库迁移

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【git】git-transfer一行搞定仓库迁移

文章目录

    • 介绍
    • 使用场景
    • 可用命令
      • 单个迁移示例
      • 批量迁移
      • 自动创建gitea组织和仓库
    • 执行步骤
    • 新增特性
    • 支持的地址格式
    • 获取

介绍

这是一个go语言编写的命令行git迁移工具:git-transfer。
特点:

  • 快速迁移,保留完整branch和commits记录
  • 本地到远程批量迁移, 默认迁移本地分支。
  • 远程到远程批量迁移,默认迁移所有分支,并且本地clone备份。

使用场景

git仓库地址发生变化,origin地址需要换成新的,支持单个仓库迁移和批量迁移两种模式。

可用命令

  • git-transfer <新地址>- 单个仓库迁移,在项目目录下执行
  • git-transfer --yaml [配置文件]- 批量迁移(默认: transfer.yaml),任意路径执行
  • git-transfer --help- 显示帮助信息

单个迁移示例

git-transfer https://github.com/user/repo.git git-transfer git@github.com:user/repo.git

批量迁移

创建transfer.yaml配置文件:

projects:-name:"项目1"path:"./project1"old_origin:"https://old-server.com/user/project1.git"# 从old-origin克隆到本地path,然后推送new-originnew_origin:"https://github.com/user/project1.git"-name:"项目2"path:"./project2"new_origin:"https://github.com/user/project2.git"# 只写new_origin,从本地直接推送所有分支到new_origin

自动创建gitea组织和仓库

git-transfer --make-repo gitea --yaml z_hedong.yaml --username admin --password123456

然后执行批量迁移:

git-transfer --yaml my-config.yaml

执行步骤

  1. 环境检查

    • 检测本地是否安装git,无则输出"请配置git程序"
    • 检查当前目录是否为git仓库,无则输出"当前目录不是git仓库"
    • 验证新地址格式是否正确
  2. 备份当前配置

    • 获取并保存当前origin地址(用于出错时回滚)
    • 输出当前origin地址信息
  3. 更新远程地址

    • git remote remove origin- 删除现有的origin
    • git remote add origin 新地址- 添加新的origin地址
    • 验证新地址是否添加成功
  4. 推送代码

    • 先尝试git push --all推送所有分支
    • 如果推送失败,询问用户是否确认使用git push -f --all强制推送
    • 推送成功后输出确认信息
  5. 错误处理

    • 任何步骤失败时,尝试恢复原origin地址
    • 输出详细的错误信息和建议

新增特性

  • 命令行帮助---help显示所有可用命令和使用说明
  • 批量迁移---yaml支持从配置文件批量迁移多个项目
  • 实时进度条- 批量迁移时显示绿色进度条(第几个项目/总数)
  • 跨平台兼容- 兼容 cmd/powershell/bash/sh/zsh 等终端
  • 彩色输出- 使用颜色区分不同类型的信息
  • 详细日志- 每一步都有详细的日志输出
  • 安全回滚- 支持出错时自动回滚到原地址

支持的地址格式

  • http://github.com/user/repo.git
  • https://github.com/user/repo.git
  • git@github.com:user/repo.git
  • ssh://git@github.com/user/repo.git

获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 15:26:49

python基于Vue框架的敦煌文化旅游管理系统的设计与实现_524q8_django Flask pycharm项目

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python基于Vue框架的敦煌文化旅游管理…

作者头像 李华
网站建设 2026/4/15 20:11:27

基于STM32的手势识别电机调速系统

基于STM32的手势识别电机调速系统 第一章 系统设计背景与需求分析 传统电机调速多依赖物理按键、旋钮或遥控器&#xff0c;存在操作接触限制、环境适应性弱等问题&#xff0c;在工业流水线、智能家居等场景中&#xff0c;频繁接触操作易导致效率降低或卫生隐患。手势识别技术凭…

作者头像 李华
网站建设 2026/4/16 10:17:15

WeGame下载安装教程 | 详细步骤与常见问题解决方案

前言 在 Windows 平台上&#xff0c;WeGame 是国内广泛使用的数字游戏分发与管理平台之一&#xff0c;为用户提供游戏下载、更新、存档同步以及社区互动等综合功能。对于刚开始接触 PC 游戏的用户&#xff0c;正确的下载安装步骤和环境配置往往决定了使用体验的流畅度。本文将…

作者头像 李华
网站建设 2026/4/16 10:15:54

这个网站有25000套PS样机模板,不要会员,就可以免费下载!

这个是我用了好久的一个网站&#xff08;PNG派&#xff09;&#xff0c;前几天刚充值的会员&#xff0c;但是今天这个网站竟然全部免费了&#xff0c;简直离谱&#xff01;主要是我还是会员&#xff0c;真是血亏。现在不用会员、就能免费下载&#xff0c;25000套PS样机数量多到…

作者头像 李华
网站建设 2026/4/16 10:14:14

Miniconda-Python3.9镜像优势解析:为何它比Anaconda更适合科研

Miniconda-Python3.9镜像优势解析&#xff1a;为何它比Anaconda更适合科研 在当今的科研与人工智能开发中&#xff0c;Python 已不仅是编程语言&#xff0c;更是一种研究基础设施。从论文复现到模型训练&#xff0c;再到跨团队协作&#xff0c;代码能否“跑起来”往往取决于一个…

作者头像 李华
网站建设 2026/4/16 10:14:17

msvcp140_atomic_wait.dll文件损坏丢失找不到 打不开程序 下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华