转自:http://blog.csdn.net/a5244491/article/details/44807937

版权声明:本文为博主原创文章,未经博主允许不得转载。

因为一些特殊原因,需要将公司原来的代码仓库从github移植到oschina上去,项目手工操作很麻烦。自己整理了一下,写了简单的几个脚本来处理了。

在这之前,必须先手动在新的Git仓库上把项目先建立好,否则是不会成功的。(也许有命令行方式,还请告知,我不会)

1 先建立个空的目录,用来down工程以及处理工程

$ mkdir migrate

2 cd migrate  #进入目录

3 执行自己写的迁移工具

$   gitmigrate git@git.oschina.NET:a5244491/xxxx

若有多个工程可把所有工程的ssh git地址都写到文件中,然后一次性处理。

以下是gitmigrate.sh的代码,使用方法就是gitmigrate $原git仓库上某个项目的ssh地址

#!/usr/bin/env bash
# $1 是源地址

temp=$1
name=${temp##*/}  #截取 core-lib.git
#tar="git@git.oschina.net:a5244491/"$name
tar="https://git.oschina.Net/a5244491/"$name
#tar="git@code.csdn.net:lianyin2013/"$name
name=${name%.*}  #截取 core-lib
echo "-------------------------git migrate -------------------------"
echo "-----from" $1 
echo "-----to  " $tar 
echo "-------------------------git clone   -------------------------"
echo "-----from" $1
git clone $1
echo "-------------------------finish clone-------------------------"
echo "-------------------------change dir  -------------------------"
echo "-----to " $name
cd $name
gitbranchtrack

echo "-------------------------finish branch track -------------------------"
echo "-------------------------list branch track -------------------------"
git branch
echo "-------------------------change to new repo -------------------------"
echo "------" $tar
git remote set-url origin $tar
echo "-------------------------git fetch all-------------------------"
#git fetch --all
echo "-------------------------tal all-------------------------"
git add .
git commit -m "migrate commit."
echo "-------------------------git push all branchs -------------------------"
git push --all
echo "-------------------------finish git push all branch -------------------------"

git remote -v

其中gitbranchtrack

代码如下

#!/usr/bin/env bash

echo "track all branchs exculde master and HEAD"
#!/bin/bash
for branch in `git branch -a | grep remotes | grep -v HEAD | grep -v master`; do
    git branch --track ${branch##*/} $branch
done
git fetch --all
git pull --all

 

最新文章

  1. 12款经典的白富美型—jquery图片轮播插件—前端开发必备
  2. [密码学] C++ 实现 AES128 加密算法
  3. poj3186 Treats for the Cows(区间)
  4. 使用Python玩转WMI
  5. c语言中的部分字符串和字符函数
  6. main函数参数的使用
  7. eclipse 发布APK
  8. 【HDOJ】1462 Word Crosses
  9. css内容生成器
  10. $('#checkbox').attr('checked'); 回报checked或undefined该解决方案
  11. linux内核initrd文件自定义方法
  12. C语言实验一(1)
  13. 关于loading
  14. IDA Pro的patch插件 KeyPatch
  15. CocosCreator的Sprite的更换
  16. Spring基础(3) : 静态工厂和实例工厂创建bean
  17. Django Rest Framework源码剖析(二)-----权限
  18. [压缩]C#下使用SevenZipSharp压缩解压文本
  19. 3322.org
  20. 在linux下安装wordpress

热门文章

  1. 笔记-scrapy-signal
  2. Git-Git里程碑
  3. Android面试收集录 Android入门
  4. USACO Section2.3 Cow Pedigrees 解题报告 【icedream61】
  5. python之if测试
  6. unity灯光Lightmapping、LightProbes
  7. 【转载】Unity3D研究院之IOS&Andoird使用Sharesdk遇到的坑
  8. sources.list
  9. CSU-1170 A Simple Problem
  10. 【linxu】部署docker容器虚拟化平台