首页 > 解决方案 > Github - 更新分支后同步分叉

问题描述

我相信有人会急于将其标记为重复,也许是这样,但请先阅读,因为我仍在学习 github。

我已经分叉了一个项目,我在 Windows 上有一个本地存储库,其 origin 指向我的 fork,upstream 指向原始项目。使用命令行编辑器,我用我的更新创建了一个本地分支,我们称它为我的“功能分支”,并将该分支推送到原点(我的 fork)。由于推送了特性分支,上游(原始项目)已经更新,所以在默认/主分支上,我先进行了拉取,然后进行了推送。我的 fork 的主人现在说它是偶数,但是我的 fork 的功能分支后面有很多提交。

我应该如何更新我的功能分支,本地和远程,而不会丢失我的更改?我已阅读以下内容,但仍然感到困惑/不确定:

https://help.github.com/en/articles/syncing-a-fork

github拉上游和远程不更新文件

Github,分叉后从上游拉/更新

我的新手认为我需要以某种方式将树枝移到树顶。

标签: gitgithub

解决方案


您需要将分支重新定位到更新的分支featuremaster

### Usage
# rebase current/active branch onto master
git rebase master

# OR, do a rebasing without checking out the branch you want to rebase
# rebase branch "feature" onto branch "master"
git rebase master feature

之后,强制将重新建立的feature分支推送到远程分支origin/feature,导致分支上的历史记录发生变化feature

git checkout feature
git push origin feature --force

例子

这是一个示例:将分支重新定位experimentmaster.

前:

在此处输入图像描述

变基:获取引入的更改补丁C4并将其重新应用C3.

$ git checkout experiment
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: added staged command

后:

在此处输入图像描述

参考


推荐阅读