如何解决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 远程仓库。
相关推荐
杨杨杨大侠16 小时前
第6章:高级特性与性能优化
java·github·eventbus
澈轩16 小时前
Git 用得好,下班走得早
git
HelloGitHub16 小时前
这款开源调研系统越来越“懂事”了
前端·开源·github
ruanCat16 小时前
配置 github workflow 工作流文件,实现仓库自动更新 github page 站点
github
绝无仅有17 小时前
面试总结之Nginx 经验常见问题汇总第二篇
后端·面试·github
绝无仅有17 小时前
面试实战总结之Nginx配置经验第一篇
后端·面试·github
掘金安东尼18 小时前
Chrome 17 岁了——我们的浏览器简史
前端·javascript·github
人间造梦工厂18 小时前
Git Bash 别名
git
画个太阳作晴天1 天前
解决 Android Studio 中 build 目录已被 Git 跟踪后的忽略问题
git
wjs0401 天前
Git常用的命令
java·git·gitlab