从上游仓库创建本地分支并推送到Fork仓库报错求助
问题分析与解决办法
为啥会报这个错?
你碰到的这个致命错误,核心原因很简单:本地Git仓库没有同步上游(upstream)仓库的develop_clean分支信息。虽然你已经fork了上游仓库,也把它设为了远程仓库upstream,但Git不会自动帮你实时拉取上游所有分支的最新状态——它根本不知道upstream/develop_clean对应的提交记录是什么,自然没法基于它创建新分支。
正确的操作流程
按下面的步骤走,就能顺利完成需求:
- 先拉取上游仓库的所有分支、标签等最新信息到本地(不会影响你当前的本地分支):
git fetch upstream - 基于上游的
develop_clean分支创建本地UnitTest分支:
这时候Git已经能识别git checkout -b UnitTest upstream/develop_cleanupstream/develop_clean的引用了,创建分支不会再报错。 - 把本地
UnitTest分支推送到你自己的远程仓库(origin),并建立关联:git push -u origin UnitTest
其他实现需求的替代方法
如果你觉得上面的步骤有点绕,也可以试试这两种方式:
方法一:先切换到上游分支的跟踪状态,再创建本地分支
git fetch upstream git checkout upstream/develop_clean git checkout -b UnitTest git push -u origin UnitTest第二步执行后会进入「分离头指针」状态,不过不用担心,第三步创建新分支后就会回到正常的分支状态。
方法二:用
git branch命令直接创建关联分支git fetch upstream git branch UnitTest upstream/develop_clean git checkout UnitTest git push -u origin UnitTest
额外提醒
如果执行git fetch upstream时提示找不到upstream远程仓库,说明你还没配置上游仓库地址,先执行下面的命令添加:
git remote add upstream <上游仓库的Git克隆地址>
你可以用git remote -v查看当前的远程仓库配置,确认upstream是否存在。
内容的提问来源于stack exchange,提问作者NeoCoder
相关产品推荐
相关产品推荐

