git代码仓库迁移(从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
1temp=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 #tar="git@code.csdn.net:lianyin2013/"name
name={name%.*}  #截取 core-lib echo "-------------------------git migrate -------------------------" echo "-----from"{name%.*}  #截取 core-lib echo "-------------------------git migrate -------------------------" echo "-----from"
echo "-----to  " tarecho"gitclone"echo"from"tarecho"−−−−−−−−−−−−−−−−−−−−−−−−−gitclone−−−−−−−−−−−−−−−−−−−−−−−−−"echo"−−−−−from"1
git clone 1echo"finishclone"echo"changedir"echo"to"1echo"−−−−−−−−−−−−−−−−−−−−−−−−−finishclone−−−−−−−−−−−−−−−−−−−−−−−−−"echo"−−−−−−−−−−−−−−−−−−−−−−−−−changedir−−−−−−−−−−−−−−−−−−−−−−−−−"echo"−−−−−to"name
cd namegitbranchtrackecho"finishbranchtrack"echo"listbranchtrack"gitbranchecho"changetonewrepo"echo""namegitbranchtrackecho"−−−−−−−−−−−−−−−−−−−−−−−−−finishbranchtrack−−−−−−−−−−−−−−−−−−−−−−−−−"echo"−−−−−−−−−−−−−−−−−−−−−−−−−listbranchtrack−−−−−−−−−−−−−−−−−−−−−−−−−"gitbranchecho"−−−−−−−−−−−−−−−−−−−−−−−−−changetonewrepo−−−−−−−−−−−−−−−−−−−−−−−−−"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##*/}branch
done
git fetch --all
git pull --all







本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/7047726.html,如需转载请自行联系原作者


相关文章
|
8月前
|
开发工具 git C++
【够用就好002】外行第一次发布github项目仓库
#deepseek#自学 记录外行学习代码的历程 今天是上传自己的工具代码到github仓库,一直以来是伸手党克隆别人的项目,今天在deepseek的辅导下上传自己的内容。
|
6月前
|
人工智能 API 开发工具
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
GitHub MCP Server是基于Model Context Protocol的服务器工具,提供与GitHub API的无缝集成,支持自动化处理问题、Pull Request和仓库管理等功能。
1266 2
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
|
4月前
|
网络协议 开发工具 git
解决 git 报错 “fatal: unable to access ‘https://github.com/.../.git‘: Recv failure Connection was rese
在使用 Git/Git小乌龟 进行代码管理的过程中,经常会遇到各种各样的问题,其中之一就是在执行 git clone 或 git pull 等操作时出现 “fatal: unable to access ‘https://github.com/…/.git’: Recv failure Connection was reset” 的报错。这个问题通常是由网络连接问题或代理设置不正确导致的。在我的个人使用经验中,我亲自尝试了四种方法,它们都能够有效地解决这个报错。个人比较推荐方法二。
2164 0
|
4月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
248 0
|
6月前
|
文字识别 网络协议 开发工具
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
3913 11
|
6月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
248 10
|
7月前
|
开发工具 git
vscode推送项目到github仓库故障解决1
本文介绍了如何优雅解决本地仓库与远程仓库历史记录不一致的问题,并提供避免未来问题的最佳实践。核心在于理解问题根源(如历史记录差异和常见原因),采用推荐的解决方案(先本地初始化再关联远程仓库),并遵循一致的工作流程、团队协作规范及熟悉 Git 命令。通过强制推送或合并无关历史记录等方式处理现有冲突,同时养成良好习惯以预防类似问题。
|
开发工具 git
使用Git命令从Github下载代码仓库
1.使用终端命令进入文件夹,命令:cd f:/code/git 2.初始化版本仓库 git init,会在文件夹下创建一个隐藏的.git文件 3.复制代码到本地 git clone url,“url”为源码所在地址 4.此时文件夹下就成功的下载了源码
14635 1
|
1月前
|
开发工具 git
Git版本控制工具合并分支merge命令操作流程
通过以上步聚焦于技术性和操作层面指南(guidance), 可以有效管理项目版本控制(version control), 并促进团队协作(collaboration).
230 15

热门文章

最新文章