关于git同步不同仓库的合并请求

1、流程图

(觉得这如果临时分支多了,会变得特别复杂,工程量也大,要解决可能的各种冲突)
在这里插入图片描述

2、过程中出现的冲突(持续更新)

(1)

#git pull 出现错误
Git Pull Failed
POST git-upload-pack (316 bytes)
From https://gitee.com/specking/study

branch master -> FETCH_HEAD
= [up to date] master -> origin/master
refusing to merge unrelated histories

原因:本地仓库和远程仓库实际上是独立的两个仓库,要把他们变成同一个。

# 解决方案
git pull origin master --allow-unrelated-histories

如果出现再出现以下错误
fatal: couldn’t find remote ref –allow-unrelated-histories

# 解决方案
git pull --rebase origin dev-package

再次进行提交操作
(2)

#git pull 出现错误
error: Pulling is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

原因:本地的push和merge会形成MERGE-HEAD(FETCH-HEAD)、HEAD(PUSH-HEAD)这样的引用。HEAD代表本地最近成功push后形成的引用。MERGE-HEAD表示本地成功pull后形成的引用。我么可以通过MERGE-HEAD或者HEAD,来实现与svn revet类似的效果。

#解决方案
#1、将本地的冲突文件冲掉,不仅需要reset到MERGE-HEAD或者HEAD,还需要–hard。没有后面的hard,不会冲掉本地工作区。只会冲掉stage区。
git reset --hard FETCH_HEAD
# 注意:此命名会让本地仓库和远程仓库的内容同步,也就是说你本地修改的的代码会被删除掉,执行前请务必备份修改的代码!!!

#2、接着执行下面命令,就会成功。
git pull

终极大战:
强制推送

git push -f origin dev-package
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值