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

这篇具有很好参考价值的文章主要介绍了Git:完美实现远端仓库迁移,包含提交历史。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

此时已经推送到远端新仓库代码了。
关门放图:
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。
这里我就报过错,原因看图:
Git:完美实现远端仓库迁移,包含提交历史

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

此时打开自己原先的项目,重新设置远端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地址即可。
Git:完美实现远端仓库迁移,包含提交历史

4. 遇到的问题记录总结

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

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

如图:
Git:完美实现远端仓库迁移,包含提交历史
原因就是因为没有和远端代码合并一波,那么要先PULL拉取一下,执行命令(把本地仓库的变化连接到远程仓库主分支):

git pull origin master

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

如图:
Git:完美实现远端仓库迁移,包含提交历史
那么使用新的命令:

git pull origin master --allow-unrelated-histories

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

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

Git:完美实现远端仓库迁移,包含提交历史
告诉我们需要合并一下冲突。

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

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

如图:
Git:完美实现远端仓库迁移,包含提交历史
解决也很简单,就是你必须先本地commit更新了本地存储库才可以再推送到远端,所以,直接commit and push即可。

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

Git:完美实现远端仓库迁移,包含提交历史
因为还没有把必要的文件加入版本控制。

解决:
提交一次,选择要提交的文件提交成功后,就会变为绿色。
Git:完美实现远端仓库迁移,包含提交历史文章来源地址https://www.toymoban.com/news/detail-496623.html

到了这里,关于Git:完美实现远端仓库迁移,包含提交历史的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Git】git push --mirror 迁移项目到其他代码仓库,且保留分支与提交记录。

    需要把云效代码仓库的某些项目,迁移到公司内部的代码仓库。且需要保留迁移项目的分支和提交记录。 百度各种方法,并不停本地测试,结合以往gitlab操作经验解决。 执行前需要,提前在其他代码仓库里新建好项目(New Project),得到Rename repository Path。 执行逻辑 1.根据远

    2024年02月12日
    浏览(38)
  • Gitlab 实现仓库完全迁移,包括所有提交记录、分支、标签

    如果你和我一样,不喜欢命令行,就看其他方案。 选中要导出的项目,选择设置-expand-export project 刷新一下,直接下载 新建项目并导入 如果你是打杂的,没管理员权限,这步也不行。 在 gitlab 仓库页面,点击下载,注意使用 gz 格式!!! 去往你的新主体的 gitlab页面开始仓

    2024年03月28日
    浏览(41)
  • git命令更换远端仓库

            因为用Sourcetree管理代码习惯了,对git的相关语句都不太记得了,然后又不太清楚在Sourcetree上怎么切换远端仓库,所以在此记录一下相关步骤及语句; 1、cmd打开控制台,切换到相关项目地址; 2、查看当前分支及git仓库地址(可忽略此步骤,个人习惯而已): 3、移

    2024年02月11日
    浏览(43)
  • SVN迁移至GitLab,并附带历史提交记录

    Git在代码管理方面比SVN有更多的优势,如代码审查,分支和合并。 一、准备工作 安装Git环境,配置本地git账户信息: 可通过命令git config -l 查看结果 SVN的用户名和密码(同步代码时需要输入) svn账号与git账号映射,新建文件 userinfo.txt,左侧是SVN的账号,右侧是git账号信息

    2024年02月03日
    浏览(23)
  • Git初始化提交项目代码并与远端建立连接

    闲来无事,炒个冷饭。。。 方法一: 执行命令(使用git bash或者类似工具,或者IDEA下terminal命令行): 会在当前目录下创建一个新的空Git库。 方法二: 在IDEA中,执行如下操作也可: 此时当前项目下就生成了.git存储库。 执行命令,将当前目录下所有修改添加到git库里: 提交

    2024年02月15日
    浏览(47)
  • git ----拉去远端仓库产生冲突的解决方式

    # 出现冲突的原因     -1 多人在同一分支,修改了同一个地方的代码,出现的冲突     -2 分支合并时出冲突                     # 1 多人统一分支开发,修改了同样的代码          -某人修改了1.txt的第四行,提交了     -我操作:         -修改了1.txt第四行        

    2024年02月10日
    浏览(31)
  • git 上传文件夹至远端仓库的方法

    上传的远端git可以是gitlab、github、gitee、gitblit或者gitCode等等 以下以GitHub为例说明: 1、登录GitHub网站(账户/密码) 2、创建一个新的空白项目(或者已有的项目)hello-world 分支是master ,这里默认即可。 任务则是将一个srccode的文件夹上传上去,文件夹内容可以很多,这里模拟

    2024年04月23日
    浏览(39)
  • Git仓库实现:一次性提交多个文件

    首先是建立服务器与仓库的连接,不会操作的小伙伴可以看这一篇文章,链接: Git仓库 保姆级教程 选择文件夹,使用git clone上传的仓库,点击进去 输入命令行: git commit -m \\\" \\\" ,双引号一般填入描述或者版本信息,但是若要提交多个文件,则写入 \\\"add more files\\\" 有问题欢迎随时

    2024年02月12日
    浏览(45)
  • Git---本地仓库有多条commit,如何push某一条commit到远端

    举例如下: 第一种方式, 即符合git操作的规则,从最初的commit开始一个一个提交,但是不能实现指定某一个commit,基本满足日常的开发异常情况了 (只能按顺序提交) 图一 本地commit了3次提交但是并不想一下push到远程,根据功能或者时间的原因,想一个一个提交  此时可以

    2024年02月02日
    浏览(37)
  • git从远端仓库拉取代码, 切换其他分支(develop)注意点

    当我们从远端拉取包含多个分支的代码仓库后, 默认是位于主分支master, 我们想要在仓库的其他分支中提交代码, 需要注意分支的切换策略, 有如下两个方法 直接切换到远程分支  从远端仓库拉取代码后, 查看一些当前仓库中的所有分支 可以看到有如下几个分支 切换到develop分

    2024年02月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包