Git:完美实现远端仓库迁移,包含提交历史

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路Git:完美实现远端仓库迁移,包含提交历史,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

1. 背景

最近一直在写一个小项目,服务端及Web端领导交给我来写,其中提供两个对外接口给领导,领导的设备客户端对接用。我的系统代码都是在git上自己的账户下新建存储库 管理的。开发的差不多了,领导一问,好家伙,让我搞到另一个私有的公司组织下的代码仓库里。于是,就有了之后的尝试,以及在此所做的记录。

2. 迁移步骤

  • 步骤一. 首先从自己原先的仓库clone一份裸版本库下来
    git bash 命令如下:
git clone --bare http://xxx/old-repository.git
  • 步骤二. 在新的Git目录下新建一个仓库或者获取目标仓库的URL链接。(假设为new-repository.git)

  • 步骤三. 以镜像推送的方式上传代码到新仓库中去

git bash 命令如下(①先进入clone的旧版本库git文件下;②推送):

cd old-repository.git
git push --mirror http://xxx/new-repository.git

此时已经推送到远端新仓库代码了。
关门放图:
在这里插入图片描述

  • 步骤四:删除本地clone的旧仓库代码,clone新仓库的代码:
cd ..
rm -rf old-repository.git

clone新的仓库代码,可以直接点击clone下载zip项目,也可以复制链接直接输入bash命令:

git clone http://xxx/new-repository.git

此时本地已经有新仓库项目代码了。

(注:如果新地址与旧地址仓库名称等一致,这里可以不执行第四步,看下面)

3. 后续

现在虽然迁移成功了,但是我们还得能像以前一样在本地写写代码,写完了一点commit和push就成功提交才行,对吧?

关于第四步————>:

情况一:打开我们第四步clone下来的项目代码

  • 先创建本地仓库
  • 然后terminal控制台输入命令:
git remote add origin "http://xxx/new-repository.git"

这一步是因为本地刚新建仓库还没有设置过远端地址,所以add。
这里我就报过错,原因看图:
在这里插入图片描述

情况二:新旧仓库项目除了地址不一样,其余都一样,并没有执行第四步:

此时打开自己原先的项目,重新设置远端url,执行如下bash命令:

①查看自己remote的名字

git branch -r

② 假设你的remote是origin,用git remote set_url 更换地址


git remote set-url origin http://xxx/new-repository.git

PS: 更简单的方法,直接打开项目目录下.git文件夹,打开conf配置文件,更改掉里面的IP地址即可。
在这里插入图片描述

4. 遇到的问题记录总结

从迁移到完全恢复往常修改提交,遇到许多以前就遇到的问题,一次性记录在这里,供有缘人查阅。

4.1 初次提交报错:“Updates were rejected because the remote contains work that you do”

如图:
在这里插入图片描述
原因就是因为没有和远端代码合并一波,那么要先PULL拉取一下,执行命令(把本地仓库的变化连接到远程仓库主分支):

git pull origin master

4.2 拉取下来又报错误:refusing to merge unrelated histories

如图:
在这里插入图片描述
那么使用新的命令:

git pull origin master --allow-unrelated-histories

允许合并无关联的历史记录。

然后,自动merge失败,如下图:

在这里插入图片描述
告诉我们需要合并一下冲突。

然后,放图:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

4.3 push报错:Updates were rejected because the tip of your current branch is behind

如图:
在这里插入图片描述
解决也很简单,就是你必须先本地commit更新了本地存储库才可以再推送到远端,所以,直接commit and push即可。

4.4 idea 项目文件名红色的原因

在这里插入图片描述
因为还没有把必要的文件加入版本控制。

解决:
提交一次,选择要提交的文件提交成功后,就会变为绿色。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/157237.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!