我和几个朋友在GitLab有一个项目,当然有master分支,还有其他分支,当我克隆仓库的时候,我也用git remote add upstream ...
命令创建了一个上游分支。
然后,我发出git fetch upstream
,接着是git checkout upstream/test1
,现在,如果我输入git branch -a
,我会得到如下输出:
* (HEAD detached at upstream/test1)
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/upstream/test1
remotes/upstream/master
这一切都很好,但是我对upstream/test1
分支中的代码做了一些修改,我想把它们推送到origin/test1
仓库,我得到了标题上的错误消息。请注意,我按照下面的步骤推送:
git add .
git commit -m "Sample message"
git push -u origin test1
如果我发出git show-ref
命令,则会得到以下输出:
refs/heads/master
refs/remotes/origin/HEAD
refs/remotes/origin/master
refs/remotes/upstream/test1
refs/remotes/upstream/master
我检查了下面的questions,但没有发现它有帮助。有什么想法如何解决它?
5条答案
按热度按时间eoxn13cs1#
您似乎没有名为
test1
的本地分支。您有一个名为test1
的 remote 分支与您的upstream
远程分支关联。您不应该直接编辑
upstream/test1
分支,实际上,尝试 checkout 该分支应该会产生一个警告:你应该先检查一个跟踪远程分支的本地分支,它应该看起来像这样:
完成这个操作后,一个未修饰的
git push
将推送到upstream
遥控器,而git push origin test1
将推送到您的origin
遥控器。在那里添加-u
标志将切换跟踪分支,这样您的分支将跟踪origin/test1
,而不是跟踪upstream/test1
。以便将来git pull
和git push
操作将默认引用该远程分支(origin/test1
)。7fyelxc52#
下面的代码将在本地和远程创建一个新的分支。当我创建一个新的分支时,我会遵循这个代码。
git检查主机
git拉取原始主机
git checkout-b * 您的分支机构 *
进行新的更改
git push-u原点 * 你的分支 *
rqqzpn5f3#
在我的例子中,我在master分支中进行了更改,并试图将更改推送到development分支,因此得到了错误。我所做的是-
我做了修改然后跑了
tvz2xvvm4#
对我来说,问题是我试图将一个分支名称推到一个标记/文件夹中,用于我们已经设置的类型(feature / bugfix / etc),但由于我设置终端提示符的方式,文件夹名称没有显示。我需要运行
gpo feature/branch-name
,只是心不在焉地运行gpo branch-name
。(gpo
是我为git push origin
设置的别名,顺便说一句)。以防万一这对大家有帮助。
f2uvfpb95#
我也遇到过同样的问题,但我可以在以后修复它们。$ git push -set-upstream origin master error:src refspec origin不匹配任何错误:无法将某些引用推送到“-set-upstream”解决方案$ git remote add原始url $ git push -u --set-upstream原始主机