一种git代码的迁移方案

1. 这里提供一种基于同步git代码的迁移方案

  • 先clone出老的responsity的代码
  • 然后在拉取所有的远程分支到本地
  • 添加新的远程url
  • 将代码push到新的url

2. 参考脚本

  • window dos shell
@echo off

:: clone old repo
git clone old_url

:: 如果clone出来的代码根目录是repo_dir
cd repo_dir

:: fetch all remote branches

git branch -r | findstr /v ">" > tmp.log

set targe=''
setlocal enabledelayedexpansion
for /f   %%i in (tmp.log)  do (
set remote=%%i
set var=!remote:origin/=!
echo "!var!"
git branch --track !var! !remote!
) 

git fetch --all
git pull --all

git remote rename origin old-origin
git remote add origin new_url

git push -u origin --all
git push -u origin --tags


:: del tmp data
del ..\\tmp.log

echo "migrate finish!"

pause
  • linux bash shell
#!/bin/bash

# clone old repo
git clone old_url

# 如果clone出来的代码根目录是repo_dir
cd repo_dir

# fetch all remote branches
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all

git remote rename origin old-origin
git remote add origin new_url

git push -u origin --all
git push -u origin --tags

echo "migrate finish!"

推荐阅读更多精彩内容

  • 第1章 Shell和vi 1.1什么是shell 在计算机科学中,Shell俗称壳,用来区别于Kernel(核),...
    福尔摩鸡阅读 310评论 0 1
  • 本文汇总了Git的一些技巧 和 我在使用Git的过程中遇到的问题及解决方案 目录 1. 不显示中文[#1-%E4%...
    科研者阅读 637评论 0 0
  • 一 Git配置和仓库初始化 下面会介绍Git的使用,每个小节里会讲解各个功能在命令行中的实现方式,并在每小节的最后...
    Happioo阅读 2,357评论 0 5
  • Shell和vi shell 在计算机科学中,Shell俗称壳,用来区别于Kernel(核),是指“提供使用者使用...
    Yuann阅读 186评论 0 0
  • 一、shell和vi 1、什么是shell (1)在计算机科学中,Shell俗称壳,用来区别于Kernel(核),...
    GL曲终人散阅读 121评论 0 1
  • 晚间依旧按照往日惯例外出散步,走在河边心情甚好,尤其是心中烦闷之时,不妨多去山川瀑布,自然能解燥郁之气。 因为人归...
    占韵阅读 49评论 0 1
  • [注]:采用shell脚本的方法进行获取windows10锁屏壁纸 1. wsl子系统 wsl:windows子系...
    所遇皆良人阅读 419评论 0 1
  • CoreData简介: CoreData是Cocoa平台上用来管理模型层数据和持久化数据的一个框架,主要是数据库存...
    TigerManBoy阅读 86评论 0 0