github上的版本和本地版本冲突的解决方法

本文介绍了在使用Git过程中遇到的一些常见错误及其解决方案,包括合并不相关历史记录错误、本地更改与远程仓库冲突等,并提供了详细的步骤指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

问题一 、 refusing to merge unrelated histories

在使用git的时候相当于没有更新 (没有pull)直接提交 到主分支(push master)报错, 然后在才又更新代码这时候会报错

 git pull https://gitee.com/453972820/xxx.git
From https://gitee.com/453972820/xcxnm
 * branch            HEAD       -> FETCH_HEAD
fatal: refusing to merge unrelated histories  #意思 拒绝合并不相关的历史

这时候需要加上配置项,--allow-unrelated-histories   #允许合并历史

 git pull https://gitee.com/453972820/xcxnm.git master --allow-unrelated-histories  
From https://gitee.com/453972820/xxx
 * branch            master     -> FETCH_HEAD
Merge made by the 'recursive' strategy.  #通过“递归”策略进行合并
 README.md | 9 +++++++++
 1 file changed, 9 insertions(+)
 create mode 100644 README.md

 

问题二、在github上创建项目,然后本地git init
然后没有git pull -f --all
然后git add .  | git commit -am "init"
导致github上的版本里有readme文件和本地版本冲突,下面给出冲突原因:
[master] git push -u origin master
[master]  git push -u origin master -f      #强制覆盖已有的分支(会覆盖服务器的代码,最好备份),在提交,ok

使用git进行pull操作中,你会发现会有这么一个错误,这个其实类似于svn中的冲突。那如果解决这个问题呢,如图所示。
先stash changes,隐藏本地的改变,执行完这步后,再进行pull,pull完了一定不要忘记unstash changes,恢复你刚隐藏的改变。
如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,
在发布这个配置文件的时候,会发生代码冲突:
error: Your local changes to the following files would be overwritten by merge:
        protected/config/main.php
Please, commit your changes or stash them before you can merge.
如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:
git stash
git pull
git stash pop
然后可以使用git diff -w +文件名 来确认代码自动合并的情况.
反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:
git reset --hard
git pull
其中git reset是针对版本,如果想针对文件回退本地修改,使用
[plain] view plain copy
git checkout HEAD file/to/restore 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

舰长115

码字不易如果觉得还不错谢谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值