解决Git 不相关的分支合并

server/2024/10/11 9:19:57/

可以直接调到解决方案,接下来是原因分析和每步的解决方式

问题原因:

我之前在自己本机创建了一个初始化了Git仓库,后来有在另一个电脑初始化仓库,并没有clone自己在本机Git远程仓库地址,导致Git历史版本不相关

错误信息

From https://gitee.com/to-uphold-justice-for-others/learning-gitee * branch master -> FETCH_HEAD fatal: refusing to merge unrelated histories

fatal: refusing to merge unrelated histories

 表明你尝试合并两个没有共同祖先的 Git 历史记录,但 Git 拒绝了这一操作,因为它默认不允许合并两个无关的历史。这通常发生在尝试将来自不同源的代码库或项目合并到一个仓库时。

解决这个问题的一个方法是使用 

git merge --allow-unrelated-histories

 选项来强制合并这两个无关的历史记录。但是,在这么做之前,请确保你了解这样做的后果,因为这可能会导致代码库中的文件冲突和混乱。

错误信息

$ git merge --allow-unrelated-histories origin/master merge: origin/master - not something we can merge

 merge: origin/master - not something we can merge 表示 Git 试图合并 origin/master,但是  origin/maste 不是一个可以被合并的引用。这通常意味着  origin/maste 并没有在你的本地仓库中作为一个有效的引用(比如一个分支或者标签)存在。

这个问题可能是因为你的本地仓库没有正确更新远程仓库的信息,或者你的本地仓库和远程仓库的同步状态不一致。

首先,确保你的本地仓库是最新的,使用 git fetch 来获取远程仓库的所有更新:

git fetch origin (自己当前的仓库名)

然后,再次尝试合并 origin/master 分支到你的当前分支。由于你已经使用  --allow-unrelated-histories 选项,Git 应该会允许合并即使历史记录是不相关的:

git merge --allow-unrelated-histories origin/master(自己仓库下的分支)

这边我是在自己java项目中使用Git bash Here,调用自己的终端 

我这边自己的仓库名

 

错误消息 

Merge remote-tracking branch 'Asia/master' # Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty message aborts # the commit.

 当你执行一个像 git merge Asia/master 这样的命令时,Git 会尝试将远程跟踪分支 Asia/master 合并到你当前所在的本地分支。通常,Asia 是一个远程仓库的名字,而 master 是该远程仓库的一个分支。

在合并过程中,Git 会尝试将两个分支的历史合并到一起,并解决任何可能出现的冲突。如果合并成功且没有冲突,Git 会打开一个文本编辑器(通常是系统默认的文本编辑器),让你输入一个提交信息,来解释这次合并的原因。这个信息对于其他人(或未来的你)理解这次代码变更的上下文是非常有帮助的。

编辑器中的提示信息告诉你,以 # 开头的行会被忽略,如果你不输入任何信息而直接保存并退出编辑器,合并操作会被中止,并且不会创建一个新的合并提交。

写完后保存并退出编辑器。Git 会使用你输入的提交信息来创建一个新的合并提交,这个提交将两个分支的历史连接起来。

最后push就可以了

 解决方案

 git fetch origin(自己仓库名)git merge --allow-unrelated-histories origin/master(自己仓库名/分支)进入文档编辑器编写相关信息进入底行命令行 :wq 


http://www.ppmy.cn/server/9087.html

相关文章

极客智能直播机推出阿里国际站AI直播助手,让商家轻松开启全球直播带货!

导语:极客智能直播机近期推出了一款专门为阿里国际站商家直播赋能的AI直播助手,旨在帮助阿里巴巴国际站商家轻松开启全球直播带货,实现高效营销。本文将为您详细介绍这款产品的功能、优势以及如何轻松上手,最后邀请您参与讨论&…

《SQLite系列》SQLite数据库常用命令大全

SQLite是一个轻量级的数据库系统,广泛应用于嵌入式系统和移动应用中。由于其简洁、快速和高效的特点,SQLite成为了许多开发者的首选数据库。本文将详细介绍SQLite数据库的常用命令,帮助读者更好地掌握和使用SQLite。 一、SQLite命令行工具 …

【春季发布】LinkSLA智能运维V6.0发布 聚焦架构升级 新增带外管理

LinkSLA智能运维为企业IT部门提供覆盖资源管理、监控告警、IT服务台、日志管理、MOC值守服务等多项功能为一体的运维平台,通过打通各业务单元、贯穿各技术栈,以故障定位和全生命周期管理为核心,持续保障业务连续性。 本次V6.0版本全面升级&a…

MySQL学习笔记1(MySQL基础)

1.MySQL基础 1.数据库相关概念 ​ *数据库:存储数据的仓库,数据是有组织的进行存储 DtaBase(DB) ​ *数据管理系统:操纵和管理数据库的大型软件 DataBase Management System (DBMS) ​ *SQL:操作关系型数据库的编程语言&#…

linux irq:

csdn 文章编辑工具真垃圾: 1. 中断触发硬件/软件行为:Linux kernel的中断子系统之(六):ARM中断处理过程 2.中断控制器: 3.中断使用注册

Linux 网络操作命令FTP

FTP命令 引言 文件传输协议(FTP)是一种用于在网络上进行文件传输的协议。在Linux系统中,FTP可以作为一个非常有用的工具来上传、下载和管理文件。本文将介绍如何在Linux系统中安装FTP服务器,以及如何使用FTP客户端进行文件传输。…

centos 6设置yum源遇到的问题

由于centos6已经不被支持了,直接抄人家的命令是不行的 比如执行这些(是wget或者是curl按照自己的改) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo yum makecache会报错 需要到对应的镜像源网…

8thWall vs. AR.js

对于熟悉 JavaScript、WebGL 和 HTML5 等 Web 技术的数字创作者来说,8th Wall 提供了功能丰富且强大的 AR 开发平台,尽管价格较高。 然而,新手开发人员和专注于基于标记的 AR 的开发人员可能会发现 AR.js 更易于使用且更经济实惠。 1、8th Wa…