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

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

番外篇

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


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


迁移步骤


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

feecacd4418e3af2b3e68f1c1539b23e.png


  • git remote add [shortname] [url]将新的Git url加到我们老的Git的本地
  • 这里我把他取名为git_new(随便取)

fa33411d342fc098d964382abe441d89.jpg

  • 使用命令git remote -v查看远程仓库的情况,-v参数可以看到各个仓库的url
  • 此处我们有两个远程仓库分别名为 git_neworigin


452ac15ff65a204cb21d5d660342b883.jpg

  • 保证当前仓库干净
  • 推送代码到新仓库,git push git_new master
  • 字符串 git_new 指代对应的仓库地址,也就是我们刚刚取的别名,master代表想要推送的分支,可以随便选

d09fd90488e3bed10892ab81cadb9f65.jpg



5a5804b63e811d518520dd8adccdec91.jpg


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


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


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


因为在新的项目上合并老项目的代码,对于新项目来说是一次新的代码提交,所以只允许当前提交用户来提交,但是代码历史里有其他人的提交记录,Git是不会允许通过的。除非全部改成一个人


如果在老项目上,给新项目推代码这种顺序就是已有代码推到已有仓库的逻辑


小结


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

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

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


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


git clone老项目


git remote add gerrit添加新项目git链接


cd 项目名 此时我们就位于已有代码


git push gerrit master此时就是把已有代码推于已有项目


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


(口令红包:编程三分钟946)

相关文章
|
3天前
|
存储 开发工具 git
TortoiseSVN迁移到本地git
通过上述步骤,您可以将项目从TortoiseSVN迁移到本地Git仓库。这一过程包括从SVN仓库检出代码、使用 `git-svn`转换为Git仓库、优化Git仓库以及将本地仓库推送到远程Git仓库。以下是思维导图示例,帮助您更好地理解迁移过程。
47 27
|
8天前
|
安全 开发工具 git
git分布式版本控制系统及在码云上创建项目并pull和push
通过本文的介绍,我们详细讲解了Git的基本概念和工作流程,并展示了如何在码云上创建项目及进行pull和push操作。Git作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码变更和协作开发。希望本文能帮助您更好地理解和使用Git及码云,提高开发效率和代码质量。
29 16
|
9天前
|
安全 开发工具 git
git分布式版本控制系统及在码云上创建项目并pull和push
通过本文的介绍,我们详细讲解了Git的基本概念和工作流程,并展示了如何在码云上创建项目及进行pull和push操作。Git作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码变更和协作开发。希望本文能帮助您更好地理解和使用Git及码云,提高开发效率和代码质量。
37 18
|
1月前
|
开发工具 git
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
186 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
|
4月前
|
Java Shell 开发工具
git集成IDEA,托管项目实现版本管理
git集成IDEA,托管项目实现版本管理
49 0
|
6月前
|
Java 开发工具 git
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
|
6月前
|
架构师 开发工具 git
项目去除git版本控制 去除版本控制
文章提供了去除本地项目Git版本控制的步骤,包括删除`.git`文件夹和`.idea`目录下的`vcs.xml`文件。
项目去除git版本控制 去除版本控制
|
6月前
|
Shell 开发工具 git
|
6月前
|
jenkins 测试技术 开发工具
协同开发的艺术:Git 在团队项目中的高效应用
【8月更文第16天】在现代软件开发中,团队成员之间的高效协作是至关重要的。Git 作为一种分布式版本控制系统,为开发者提供了强大的工具来管理代码的变化和协作。本文将介绍如何利用 Git 来优化团队的工作流程,并提供实际操作的代码示例。
217 1
|
6月前
|
网络安全 开发工具 数据安全/隐私保护
Win10使用Git克隆项目出现fatal: Authentication failed for异常
Windows 10系统中使用Git克隆项目时出现"fatal: Authentication failed for"异常的解决方法,主要是通过修改凭据管理器中的Git凭据密码来解决因密码过期导致的身份验证失败问题。
151 0
Win10使用Git克隆项目出现fatal: Authentication failed for异常