我是靠谱客的博主 疯狂发箍,最近开发中收集的这篇文章主要介绍代码迁移新git仓库-实现笔记。从一个git仓库迁移代码到另一个git仓库(亲测有效版),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

代码迁移新git仓库-实现笔记。

实现步骤:

===1、
https://www.jianshu.com/p/25df045cbc08
【内容bak:

从一个git仓库迁移代码到另一个git仓库(亲测有效版)

鱼猫_2e63关注

0.1532018.06.30 10:56:05字数 1,002阅读 2,988

不保留log等提交的记录的迁移就不说了,soeasy!
目标:把A仓库的代码迁移到B仓库并且保存所有的git log,B仓库已经存在了哦,哪怕是个空仓库。

再说这个之前先说点其他。在使用git的时候我们可能见到这样的命令。不想看解说想直接看步骤的往下翻

git pull origin master //拉取远程master分支的代码
git push origin master //把代码推到远程master分支上去

有没有人好奇为什么是origin,而不是其他名字,比如git pull orginal master或者git pull origin2 master;

解答上面的问题很简单,请在你的工程中输入

git remote

发现了什么呢?默认就有一个origin,代表远程仓库。origin是有地址,地址就是当前仓库的git地址,是个url哦。所以为什么git push origin master就自动相应的推到的远程仓库的master分支了。

下面是正确的操作步骤,(看准情况分类很重要,就两种)

不管哪种情况请从情况1开始看哈哈:

情况1:

B仓库是一个空仓库,除了默认的master分支,没有任何分支。把A的branch1,branch2,branch3...依次迁入B,B也就有branch1,branch2,branch3,

  • 进入A工程
  • git remote

原因:看下当前远程仓库有啥名字,然后取个崭新的、不重复的名字,名字是过渡,不必纠结取啥名字因为名字不是关键绑定的url才是,看下一步。这里取名origin2

  • git remote add origin2(这替换你自己心目中的名字) master

不纠结照抄这就话

  • git remote set-url origin2 git@git.hub.com:B.git

原因:后面的B仓库地址url才是关键,origin2只是过渡,百人百种起法

  • 进入A工程的branch1分支上
  • git pull

原因:拉取一下最新代码

  • git checkout -b branchB1

原因:branchB1是基于A工程branch1开的新分支,代码跟A工程branch1一毛一样,但是这个名字branchB1非常重要,非常重要,原因只有一个:这个分支会被推到B工程,结果就是B工程下面就有这个分支。所以你懂的,万一你的B工程下面已经有了该分支名字,你这个做了好多工作的branchB1是根本推不上去的,是不是很疯狂

  • git push origin2

结果:这一步能不能成功就看上一步,不多说,就看你取名字瞎不瞎

如果上面的结束,说明已经成功迁移出一个分支了。常见问题:

疑问1:问其他的分支怎么做,请重复

  • 进入A工程的branch2分支上
  • git pull
  • git checkout -b branchB2
  • git push origin2
    branch2 变成branchB2然后被推到B仓库

 

 

 

 

===2、
 https://www.cnblogs.com/angryprogrammer/p/4801093.html
 【
 使用在步骤1  产生的执行 新仓库的 oringin2,执行以下命令:(目标仓库的 该分支 就会存在该代码。)
 git push -f origin2 需要迁移到新仓库的代码分支名 
 
 (此命令执行过程中出现 新问题:
 error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
解决:
》》》使用ssh,不用http。
参考:https://blog.csdn.net/qq_28119741/article/details/82793263
《使用ssh提交代码,比使用http不但能解决413的大文件报错,同时还能提高提交代码的速度,
从我提交的速度来看,他最少能够提升100%的速度,所以还是使用ssh吧。》
》》》使用ssh,要配置 公钥私钥:
1、Git查看与修改用户名、邮箱:
查看自己的用户名和邮箱地址:
  $ git config user.name
  $ git config user.email
修改自己的用户名和邮箱地址:
  $ git config --global user.name "xxx"
  $ git config --global user.email "xxx"
2、给邮箱配置 公钥私钥:
《GitLab配置ssh key》:https://www.cnblogs.com/hafiz/p/8146324.html

 )
 】
 
 ===3、ssh开启后, 
 推送改动较少的master分支》新仓库 成功了。
 可是代码不是当前最新代码。
 推送开发分支》新仓库遇到 新问题:  fatal: sha1 file '<stdout>' write error: Broken pipe 【始终未解决。因为tam-console.gitobjectspack目录文件太大】
 解决参考:https://blog.csdn.net/qq_31803503/article/details/88323527
 
 ===4、【最后实现,使用master分支,将最新代码 复制过去。重新commit。】
 【这种只适用于,不需要保留 历史 git log 的情况】
 【一般只需要代码即可。基本够用】
 
 
 
 

最后

以上就是疯狂发箍为你收集整理的代码迁移新git仓库-实现笔记。从一个git仓库迁移代码到另一个git仓库(亲测有效版)的全部内容,希望文章能够帮你解决代码迁移新git仓库-实现笔记。从一个git仓库迁移代码到另一个git仓库(亲测有效版)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部