如何解决fork仓库的开发分支push到了fork仓库的master分支上?

问题背景

我fork了仓库,新建了fix_patch_xxx分支来解决问题 然后pull request提交到apache/eventmesh(一般fork的仓库的master分支是不直接开发的 用来保持和源仓库的代码一致)

此时 马大哈本地commit完了之后没有设置这个分支的upstream,导致使用git GUI的时候直接推送到了master分支上。(1 commit behind是因为其他分支已经将pr合到主仓库中了)

尝试解决

  1. git revert git revert用于远程回退 git reset用于本地回退

两者的一个重要区别是前者会留一次commit,后者不会留:

凸(艹皿艹 ) 变成两个commit了,并且可以看到commit信息是revert上次commit

  1. 用git自带的discard

点了半天没啥反应 或者是有冲突?

  1. 尝试解决第二种方案的冲突问题

悲 把上面的revert的又merge回来了

(纯属本人不熟悉操作,如有会的小伙伴希望能评论区指点 感谢)

高人指点

简而言之:将你自己fork的仓库作为远程,原来的主仓库作为源,强制push。

(出错的原因是仓库master分支有protect rule,在仓库的settings中可以关闭)

这样就可以解决了!

后续思考

既然有这样的upstream和origin了,为啥不直接强制用upstream更新origin!?

在Git中,你可以使用以下命令强制将 upstream 分支的代码更新到 origin 分支:

sql 复制代码
git fetch upstream
git checkout your_branch_name
git merge -Xtheirs upstream/remote_branch_name
git push origin your_branch_name

上述命令的步骤是:

  1. git fetch upstream:从 upstream 远程仓库获取最新的代码。
  2. git checkout your_branch_name:切换到你的本地分支。
  3. git merge -Xtheirs upstream/remote_branch_name:合并 upstream 分支到你的本地分支。这里使用了 -Xtheirs 选项,表示在合并冲突时优先选择 upstream 分支的更改。
  4. git push origin your_branch_name:将更新后的本地分支推送到 origin 远程仓库。
相关推荐
Are_You_Okkk_2 小时前
基于MonkeyCode解析AI研发新模式,根治开发低效痛点
大数据·人工智能·开源·ai编程
冬奇Lab5 小时前
每日一个开源项目(第116篇):FreeDomain - 让每个人都拥有属于自己的数字身份
开源
lauo6 小时前
从FunloomAI到ibbot:当你的手机不再是“手机”,而是你的AI副脑和生产节点
人工智能·智能手机·架构·开源·github
小程故事多_808 小时前
拆解Hermes Agent技术架构,会自我迭代的开源智能体如何突破AI传统局限
人工智能·架构·开源
Hommy888 小时前
【剪映小助手】贴纸处理接口
网络·开源·github·aigc·剪映小助手·视频剪辑自动化
敲星写码10 小时前
2026远程控制软件选购指南:按人群场景预算一站式锁定,ToDesk覆盖90%用户需求
开源
AIMath~10 小时前
向github中上传文件过大超过50M怎么办
网络·git·github
QiLinkOS10 小时前
从技术到资产的跃迁:企业专利布局的深层逻辑
c语言·数据结构·c++·单片机·嵌入式硬件·算法·开源
麷飞花10 小时前
Github开源协议
github·开源协议
小丶舟10 小时前
6GB显卡跑Hermes Agent!开源AI自学习编程Agent实测
人工智能·学习·开源