专栏首页技术面面观如何保留原提交记录迁移Git项目,你还不知道吗?

如何保留原提交记录迁移Git项目,你还不知道吗?

番外篇

保留原提交记录迁移Git项目

为了让项目能实现Git+Gerrit+Jenkin的持续集成,我们把项目从Git上迁移到了Gerrit上,发现有的同事在老Git提交代码,因为Gerrit做了同步,在Gerrit上有新提交的时候就会刷新老git,这样就会把他提交的代码冲掉。这个时候我就必须要在两个相似项目之间合并提交了,以后只在新项目上提交代码。

迁移步骤

git clone 下载老项目并提进入项目目录

  • git remote add [shortname] [url]将新的Git url加到我们老的Git的本地
  • 这里我把他取名为git_new(随便取)
  • 使用命令git remote -v查看远程仓库的情况,-v参数可以看到各个仓库的url
  • 此处我们有两个远程仓库分别名为 git_neworigin
  • 保证当前仓库干净
  • 推送代码到新仓库,git push git_new master
  • 字符串 git_new 指代对应的仓库地址,也就是我们刚刚取的别名,master代表想要推送的分支,可以随便选

我们可以对比到,已经成功从git_test项目迁移到了git_test_new项目中,但是只推了master分支过来,要推其他分支只要切换分支然后再推就可以了!

为什么只能位于老的Git项目向新的项目提交代码?

思考:为什么只能从老的向新的推代码,而不能位于新项目merge老项目的代码?

  • 因为在新的项目上合并老项目的代码,对于新项目来说是一次新的代码提交,所以只允许当前提交用户来提交,但是代码历史里有其他人的提交记录,Git是不会允许通过的。除非全部改成一个人
  • 如果在老项目上,给新项目推代码这种顺序就是已有代码推到已有仓库的逻辑

小结

本次我们对以下命令加深了理解

git remote                       #不带参数,列出已经存在的远程仓库git remote -v                    #列出详细信息,包括远程仓库名和urlgit remote add [shortname] [url] #添加远程仓库

ps: 这里git remote add以后,还可以能用git cherry-pick commit-id来把不同仓库的commit合并过来,有兴趣的朋友可以自己尝试,这个命令可以跨仓库、跨分支、跨项目。

迁移老项目同时保存提交历史的秘诀是

  1. git clone老项目
  2. git remote add gerrit添加新项目git链接
  3. cd 项目名 此时我们就位于已有代码
  4. git push gerrit master此时就是把已有代码推于已有项目

切记:一定要先clone先项目后再向新的远程推代码,顺序反了的话即使可以成功,提交记录也没了哦!

本文分享自微信公众号 - 编程三分钟(coding3min),作者:小熊爱编程

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 版本控制工具——Git常用命令

    我们说过了git的几乎全部的常用情况,相信基本已经可以在平时团队协作开发的过程中游刃有余了。我熟悉了git的使用以后,这里给出git常用的命令,以下的命令几乎覆...

    机智的程序员小熊
  • 实习生的代码被弄丢了!救命的时候绝对用的上——每天三分钟玩转Git (8)

    新来的实习生【悲郭】因为不太熟悉git的使用,总是把自己的代码给弄丢了,这次好了,把辛苦写了一个月的功能全弄丢了。还好我力挽狂澜帮他恢复了过来。下面我们分两种代...

    机智的程序员小熊
  • 版本控制工具——Git常用操作(上)

    摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点。现在准备开一个专题,专门来总结一下版本控制工具,让我们从git...

    机智的程序员小熊
  • 技术创新,基于 React Native 的开源项目 | 码云周刊第 17 期

    摘要: 每周为您推送最有价值的开源技术内参! 码云教学 Android Studio 中的项目上传到码云上 作者:@hjqjl 一、首先下载git,并安装 ht...

    码云Gitee
  • 制作个人简历模板网页效果 | 码云端的开源项目

    就是下载源代码下来,然后更改 index.html 文件即可,再次用Git上传到自己的项目中,然后申请Pages模式,即可就可以在自己的网页中显示自己的简历。

    达达前端
  • 如何在IntelliJ IDEA 中使用 Git ?你会没...

    Git是目前流行的分布式版本管理系统。它拥有两套版本库,本地库和远程库,在不进行合并和删除之类的操作时这两套版本库互不影响。也因此其近乎所有的操作都是本地执行,...

    Java编程指南
  • git 取消托管文件

    如果想要取消托管某文件夹,通过如下命令能解决: git rm -r --cached .idea #--cached不会把本地的.idea删除 git c...

    week
  • git下载自己项目到本地

    机器学习和大数据挖掘
  • git 使用命令笔记

    git 提交了还原 git reset git 没提交还原所有 git checkout .

    solate
  • Git 自救指南

    Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式。但是一分耕耘一分收获,如果想更好地掌握 git...

    CODING研发管理系统

扫码关注云+社区

领取腾讯云代金券