首页 > 其他分享 >Git 如何迁移仓库并保留 commit 记录?

Git 如何迁移仓库并保留 commit 记录?

时间:2023-05-11 11:57:51浏览次数:48  
标签:Git 仓库 GitHub git commit 迁移

Git 如何迁移仓库并保留 commit 记录

一、作用

把在 A 托管平台的仓库完全的迁移到 B 托管平台,保留 commit 历史记录。

二、场景

将 Gitlab 上的仓库迁移到 GitHub
将 Coding 上的仓库迁移到 GitHub
将 Gitee 上的仓库迁移到 GitHub
……
迁移前后,保留 commit 历史记录,即在迁移后的新仓库中能查询历史提交信息,同时也能保留小绿点。

三、步骤

建立新仓库
克隆旧仓库
推送新仓库
下面,以 Coding 迁移到 GitHub 为例。

A. Git Bash操作

1. 在 GitHub 建立新仓库

在 GitHub 中新建一个同名项目(不同名也可以),不要添加 README.md,以及任何 License 和 .gitignore 文件,只需要新建一个空的仓库。

2. 克隆 Coding 上的项目

将 Coding 上想要迁移的项目完整克隆到本地。
本地执行 bash

git clone https://git.coding.net/wenyuan/blog.git  --bare

3. 将克隆下来的仓库推送到GitHub

克隆完成后,将仓库推送到 GitHub。
使用新仓库页面提供的仓库地址(web URL),推送所有的分支和对象
bash

cd blog.git
git push https://github.com/wenyuan/blog.git --all

4. 完成后,再执行推送所有的Tags

bash

git push https://github.com/wenyuan/blog.git --tags

这样,整个仓库就全部迁移到 GitHub 了,如果这些commit中的邮箱在GitHub配置中,可以看到小绿点也一起迁移过来了。

B. TortoiseGit 操作

这种简单的操作我不是很喜欢用可视化工具,不过这里也介绍下怎么用「小乌龟」来完成仓库的迁移。

1. 在 GitHub 建立新仓库

同上,不赘述了。

2. 克隆 Coding 上的项目

同上,不赘述了。

3. 将克隆下来的仓库推送到 GitHub

进入项目文件夹,鼠标右键 -> Git Sync…

 

点击 Manage。

 

填写 GitHub 远程仓库的信息,并 Add New/Save,应用,确认。
Remote URL 选则刚刚添加的 gitHub,然后 Push。

 

最后再提交 Tags.

四、git命令区别

上面在推送代码至 GitHub(新仓库)时,我们用到了下面这个命令:
git push https://github.com/wenyuan/blog.git --all

其实还有另外一个命令:
git push https://github.com/wenyuan/blog.git --mirror

五 参考(reference)

1.Git 如何迁移仓库并保留 commit 记录

转载至:(57条消息) Git 如何迁移仓库并保留 commit 记录_git迁移仓库保持记录_静思心远的博客-CSDN博客

标签:Git,仓库,GitHub,git,commit,迁移
From: https://www.cnblogs.com/dongfangzhaoyue/p/17390619.html

相关文章

  • Go源码阅读——github.com/medcl/esm —— http.go
    esm(AnElasticsearchMigrationTool)——http.gohttps://github.com/medcl/esmrelease:8.7.1通过阅读好的源代码,细致思考,理性分析并借鉴优秀实践经验,提高zuoyang的编程水平,所谓"他山之石,可以攻玉" 该是如此吧。 /*Copyright2016Medcl(mATmedcl.net)Licensed......
  • Github 自动部署(docker)
    githubaction自动化部署(docker)上一篇博客pm2方式自动部署方式类型一个利用pm2方式本文利用docker方式配置文件name:github-action-demo#工作流名称on:push:branches:-develop#生效分支jobs:first-github-job:#任务名称自定义runs-on:......
  • mac配置git sshkey
    cd 执行下面的命令-生成密钥,剩下的一直回车就好了ssh-keygen-trsa-C"[email protected]"查看到自己的保存路径cat/xx/xx/.ssh/id_rsa.pub复制到gitlab上;添加KEY就好了;        ......
  • git初步使用(配合vscode食用)
    #git使用#Git的作用:分布式版本控制系统,不同协作者的版本不会覆盖上传流程:首先建立一个本地的repository,将文件上传到本地,然后再上传到github1.下载vscode和git2.建立一个文件夹(切换到文件夹目录下)gitinit目的:初始化本地库,让本地文件夹成为git库3.设置用户名和和邮箱,提交......
  • gitlab--job 分组
    job分组作业当我们的job有很多的时候,如果我们写成一个stage的话,会显的很多,可以自动将相似的工作组合在一起。如果作业名称以某种方式格式化,它们将在常规管道图(而不是迷你图)中折叠成一个组要创建一组作业,请在CI/CD管道配置文件中,用数字和以下内容之一分隔每个作业名称:斜......
  • pycharm操作git
    1.pycharm拉取项目: 1_2.pycharm拉取项目: 2.pycahrm切换到dev分支,及gitbasehere打开也是同步的切换: 3.git_base_here中切换分支,pycharm也跟着切换: 4.pycharm提交代码:步骤1: 5.pycharm操作git_步骤2:点击上传版本库和提交到远程仓库按钮,commitandpush: 6.pycahrm......
  • Anaconda虚拟环境迁移
    Anaconda虚拟环境迁移背景知识:Linux压缩/解压文件夹压缩tar-czvf压缩文件名.tar.gz被压缩文件夹解压tar-zvxf压缩文件名.tar.gz-C目标文件夹-c压缩-x解压-z支持gzip解压文件-v显示操作过程-f使用档名,请留意,在f之后要立即接档名!不要再加参数!anac......
  • 记EFCore迁移在分层项目中的问题
    首先在单个项目中使用EFCore是很简单的,看看微软官网的文档几乎不会出现迁移的问题但是我的习惯是把与表相关的实体类和创建的迁移文件全部单独放在一个程序集中,这样便于集中管理,而且还可以把数据层共享给多个应用层,减少重复写代码我的应用层的程序集是WpfApp,是一个WPF程序,数据层......
  • git push出现冲突,用git status命令查看提示both modified: .idea/workspace.xml 问题
    问题:在github上管理项目,多次提交以后提交提示workspace.xml出现conflicted原因:Android项目在根目录的.gitignore文件中没有添加.idea文件夹忽略。解决办法:1.在.gitignore中添加下面内容:.gitignore.idea/.gitignore介绍:在工程实现过程中,会生成一些中间文件,或者在项目中的部分文......
  • Git教程_3 IDEA管理
     文章目录3.IDEA管理3.1介绍3.2使用3.IDEA管理3.1介绍.gitignore文件,就是管理那些文件需要上传,那些文件不需要上传的#为注释*.txt#忽略所有.txt结尾的文件,这样的话上传就不会被选中!!lib.txt#但lib.txt除外/temp#仅忽略项目根目录下的TODO文件,不......