git代码仓库迁移(从github到oschina)【转】

简介: 转自:http://blog.csdn.net/a5244491/article/details/44807937 版权声明:本文为博主原创文章,未经博主允许不得转载。 因为一些特殊原因,需要将公司原来的代码仓库从github移植到oschina上去,项目手工操作很麻烦。

转自: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

 

【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
相关文章
|
开发工具 git
Gitlab/GitHub:迁移代码,并保留历史记录
Gitlab/GitHub:迁移代码,并保留历史记录
777 0
Gitlab/GitHub:迁移代码,并保留历史记录
|
存储 缓存 Linux
GitHub,OSChina,码市的详细使用(上)
GitHub,OSChina,码市的详细使用
275 0
GitHub,OSChina,码市的详细使用(上)
|
6月前
|
数据采集 数据挖掘 Python
[Github高赞文章]python2愉快地迁移到Python3_code changing from python2 to python3(2)
[Github高赞文章]python2愉快地迁移到Python3_code changing from python2 to python3(2)
|
API
分享一次我github被封的经历以及迁移指南
分享一次我github被封的经历以及迁移指南
342 0
|
开发工具 git
如何把其他代码托管平台git仓库迁移到github还保留历史日志记录?图解步骤,值得收藏!
我在其他的代码托管平台(不是github)有一套代码,不同代码托管平台之间没有相互迁移的功能,怎么将仓库代码提交到github仓库呢?我会讲解适合于所有不同托管平台Git仓库之间的迁移方法,所以就不要老是抱怨着为什么没有外部仓库迁移过来的功能了。
299 0
如何把其他代码托管平台git仓库迁移到github还保留历史日志记录?图解步骤,值得收藏!
|
存储 开发者 Python
Python 决定放弃 BPO,将所有 Bug 迁移到 GitHub 中
Python 决定放弃 BPO,将所有 Bug 迁移到 GitHub 中
112 0
Python 决定放弃 BPO,将所有 Bug 迁移到 GitHub 中
|
存储 CDN
Typora gitee图床迁移github图床教程(图文详细)
本文为Typora gitee图床迁移github图床教程
370 0
Typora gitee图床迁移github图床教程(图文详细)
|
网络安全 数据安全/隐私保护 iOS开发
GitHub,OSChina,码市的详细使用(下)
GitHub,OSChina,码市的详细使用(下)
269 0
GitHub,OSChina,码市的详细使用(下)
|
缓存 Linux 开发工具
GitHub,OSChina,码市的详细使用(中)
GitHub,OSChina,码市的详细使用
218 0
GitHub,OSChina,码市的详细使用(中)
2021 最新 IDEA集成Gitee、Gitee迁移GitHub【图文讲解】(四)
2021 最新 IDEA集成Gitee、Gitee迁移GitHub【图文讲解】(四)
106 0
2021 最新 IDEA集成Gitee、Gitee迁移GitHub【图文讲解】(四)