某位Github用户在其仓库中只有一个主分支。我将该仓库fork到了我的账户。我在自己的fork仓库上创建了一个新分支,并进行了一些更改。
上游用户已经将更改提交到他们的主分支。我希望使用这些更改更新我的主分支。此外,如果我正确理解rebase
,我想要在这个主分支上对我的分支进行rebase
。我不想与主分支合并,因为我还没有完成对我的分支的开发。注意:上游更改的文件与我在我的分支中更改的文件不同,因此不应该出现冲突。
我尝试了以下步骤:
我从上游用户那里拉取了更改到我的本地仓库:git pull upstream master
我将本地主分支的更改推送到我的forked主分支:git push origin master
我在本地主分支上对我的本地分支进行了rebase:git checkout mybranch
git rebase master
我尝试将我的重新基于主分支的本地分支推送到我的forked分支:git push origin mybranch
然而,我收到了以下错误提示:
To https://github.com/myusername/myforkedrepository.git
! [rejected] mybranch -> mybranch (non-fast-forward)
error: failed to push some refs to 'https://github.com/myusername/myforkedrepository.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
请注意,origin
是我的派生仓库,而upstream
是原始仓库。
在stackoverflow上有一个类似的问题,建议使用稍微简单的方法:
git fetch upstream
git rebase upstream/master
这没有报错,但也没有将任何内容推送到我的远程分支。尝试了上述方法后,我再次尝试了
git push origin mybranch
但是相同的错误仍然存在。
我应该如何做到我想要的呢?