GitHub、GitLab、Gitee等在同一个网站中执行复制或拷贝一个已有项目到一个新项目比较简单,因为它们在每一个项目上都有一个Fork按钮,直接点击此Fork按钮即可,Fork后的新项目会保留原有项目的历史提交记录。但是如果不在同一个网站上进行此操作,如想把GitHub中的项目复制到Gitee上,又要保留历史提交记录,则需要执行一些额外命令。

如把GitHub上的Messy_Test项目(https://github.com/fengbingchun/Messy_Test)复制到Gitee上,并取项目名为Messy_Tmp,具体操作如下(不推荐,推荐的方法见下面改进部分):

1. 对Messy_Test项目执行git log,查看历史提交记录,结果如下图所示,最近的一次提交commit id为:7726835e4a92252985cd521bb83fed9dbfb62312,分支名为master

2. 在Messy_Test项目中.git/config内容如下:注意此时[remote “origin”]的内容:

3. 在Gitee中创建一个新项目,名称为Messy_Tmp,地址为:https://gitee.com/fengbingchun/Messy_Tmp

4. 在Messy_Test项目中依次执行如下三条命令,结果如下图所示:注意此时[remote “origin”]的内容已改变:

5. 执行push,结果如下图所示:执行完后已将Messy_Test的code提交到Gitee的Messy_Tmp项目上并保留历史提交记录。

6. 打开Gitee的Messy_Tmp项目,结果如下图所示:保留了原有项目Messy_Test的历史提交记录,此时只有Messy_Test项目的master分支的内容,没有其它分支。

在Gitee中新建项目时,也可点击“导入已有仓库”导入GitHub上已存在的项目,结果如下图所示:但是好像项目名要与GitHub中的一致,但是后面可以自己再重新更改,此时导入的项目包含了原有项目中的所有分支。GitHub和GitLab中也有类似的”导入已有仓库”的功能。

网上也有一些其它类似的操作可保留原有项目的历史提交记录。

改进(推荐):按照以上的步骤,本地的Messy_Test项目将不能作其它操作,因为在第4步时执行了”git remote rm origin”操作,这里稍作改动,使其Messy_Test既能保持正常操作,又可将项目推导Gitee上保留历史提交记录:

1. 与上面第1步执行操作相同;

2. 与上面第2步执行操作相同;

3. 在Gitee中创建一个新项目,名称为Messy_Tmp2,地址为:https://gitee.com/fengbingchun/Messy_Tmp2 ;

4. 注册远程版本库,取名为gitee_Messy_Tmp2,执行如下命令,.git/config内容变为如下:新增[remote “gitee_Messy_Tmp2”]

5. 将code推到Gitee,执行如下命令,结果如下图所示:

6. 打开Gitee的Messy_Tmp2项目,结果如下图所示:保留了历史提交记录

7. 假如在Messy_Test上作了多次提交,然后需要把这多次提交Merge到Messy_Tmp2上,可再次执行以上命令:”git push gitee_Messy_Tmp2 master”,结果如下图所示:

GitHub:https://github.com/fengbingchun

GitHub/GitLab/Gitee中项目互拷贝后仍保留历史提交记录的方法相关推荐

  1. 彻底删除git中的较大文件(包括历史提交记录)

    场景 适用于从一个git项目中,将体积较大的资源彻底从git中删除,包括历史提交记录. 如果仅仅在目录中删除一个文件是不够的,只要在提交记录中有这个文件,那么 .git 中就会有这个文件的信息. 用 ...

  2. Github / Gitlab Actions 中的 cron 格式 和设置方法

    Github / Gitlab Actions是一种轻量级的CI(Continuous integration,持续集成),能够自动化地完成某些特定功能或功能组合.在编写Gitlab Actions时 ...

  3. 对不同的项目设置不同的git提交用户名和清除贡献者信息和历史提交记录

    对不同的项目设置不同的git提交用户名 在项目目录下的(存在.git文件夹,如果不存在.git文件夹说明没有初始化git仓库,此目录下打开cmd输入git init一下就好了,但是要注意这时此目录应该 ...

  4. github 删除历史提交记录的可行方案

    github 删除历史提交记录的可行方案 删除历史版本 亲自研究发现的可行方案 一.创建新分支,复制所有内容并提交 获取最新 : git pull origin master切换分支:git chec ...

  5. git 本地如何配置多平台账号|本地 git 账号关联远程 github/gitlab/gitee

    一.问题产生背景 工作用的公司 gitlab 账号,自己平常学习用的 github 账号,又只有一个电脑,公司账号当然不能用于github,所以需要分别配置两套密钥,分别用于自己搞事情研究和公司搬砖使 ...

  6. 清空GitHub仓库的历史提交记录(commits)

    各位在github上维护自己编写的代码工程仓库时,想必遇到过仓库内文件泄漏隐私信息.commits泄漏邮箱信息等敏感头疼问题,但是由于这些仓库收获了很多stars,不想删除后重建新仓库.为了解决这些问 ...

  7. easyui onclickrow 中获取列名_获取Chrome浏览器历史浏览记录实例

    1.获取谷歌浏览器浏览历史保存位置,并拷贝一份到操作目录下2.找到浏览记录文件 "History"3.将"History"文件导出到其他目录下4.查看数据库ta ...

  8. jenkins通过Execute shell中通过scp/ssh命令,将一台机器中项目远程拷贝到另外一台机器,修改文件中内容

    1.前置条件 安装expect yum install expect -y 2.在Execute shell中编写如下命令 在jenkins中执行以下命令的时候,前提条件是现在jenkins机器上手动 ...

  9. Github/Gitlab/Gitee徽章生成网站shields.io的使用方法

    网站地址:https://shields.io/ [静态徽标] label:左边标签 message:右边具体信息 color:颜色,常用颜色如下 网址1:https://img.shields.io ...

最新文章

  1. java中的string函数_java中string.trim()函数的作用实例及源码
  2. mysql 分页排序
  3. 静态反调试技术(1)
  4. 正则表达式的常用操作符
  5. 如何正确的终止正在运行的子线程
  6. 为进阶Linux大佬打牢地基
  7. tensorflow系列之1:加载数据
  8. .NET团队送给.NET开发人员的云原生学习资源
  9. Linux下进程隐藏的常见手法及侦测手段
  10. [深度学习-理论篇]什么是卷积神经网络CNN
  11. 计算机网络相关的知识,计算机网络相关知识整理
  12. isag java_ISAG - WEB源码|JSP源码/Java|源代码 - 源码中国
  13. matlab 车牌汉字识别系统,基于MATLAB车牌自动识别系统设计毕业设计论文最新版...
  14. idea设置主题风格
  15. 负载均衡及其常见实现方式
  16. 大数据 别让技术蛊惑
  17. 通过AOP实现全局日志打印
  18. 干货分享,4款安卓小众软件,每一个都值得保留
  19. 计算机关闭系统剪切板上的内容,怎么清空剪切板内容?
  20. 我的电磁学讲义13:电磁感应定律

热门文章

  1. halcon:(4)halcon中XLD的概念与应用----汽车引擎盖圆孔检测
  2. qemu模拟Cortex-A57运行Linux4.5.1
  3. 剑指offer:面试题07. 重建二叉树
  4. 设置VSCode自动保存
  5. 使用cat,awk和sort命令从nginx访问日志中统计user-agent类型
  6. 在Blender中创建真实的汽车CGI视觉动画效果
  7. Cell select
  8. CORS漏洞利用检测和利用方式
  9. 前端开发基础7(Bootstrap框架)
  10. 【tyvj1052】【树状dp】没有上司的舞会