git 分支不存在

wvt8vs2t  于 2022-12-17  发布在  Git
关注(0)|答案(4)|浏览(270)

该命令

git branch --set-upstream-to develop origin/develop

导致错误

fatal: branch 'origin/develop' does not exist

我不知道这意味着什么,除了原始开发不存在。这是否意味着它不存在于服务器或我的本地机器?
我是一个git新手,但我正在建立我的网站,以处理部署与git作为一种手段来学习git。

q8l4jmvw

q8l4jmvw1#

origin是一个remote的名字,它是另一个repo知道的repo。你在添加repo时命名为git remote add somename other/repo/path,然后你可以从它们命名为fetchpull,如果它们是裸repo,可以命名为push。当你克隆一个repo时,git会为你设置一个remote,指向你克隆的repo,并默认将其命名为originorigin/develop指的是origin远程存储库中的develop分支。
如果你已经在本地创建了一个分支,你可以把它推送到一个特定的远程节点上,在那里创建它,但是在你创建之前,你不能把它设置为上游,在你的例子中,你可以做git push origin develop,然后你可以把它设置为上游,但是你可以把这个操作压缩到-u的推操作中,所以git push -u origin develop,这会将你的分支推送到origin,并设置本地分支来跟踪它。注意push -u是在git 1.7.0中添加的。

iqjalb3h

iqjalb3h2#

首先确定你在develop分支,然后使用git branch --set-upstream-to origin/develop

oknrviil

oknrviil3#

Git定义了git branch --set-upstream-to <upstream> [<branchname>]
这里<upstream>指定远程分支,[<branchname>]是本地分支名称,如果未指定分支,则默认为当前分支。
因此,它应该是git branch --set-upstream-to origin/develop develop
-u可与--set-upstream-to互换

vybvopom

vybvopom4#

TL;DR

您可能需要先运行git fetch <upstream>,然后再运行git branch --set-upstream-to <upstream>
今天我在Github上做一个公共repo的时候遇到了类似的问题。我克隆了这个公共repo,在本地做了一些修改,然后意识到我忘了先在GitHub上分叉这个repo。所以我现在就去分叉了,但是我不能设置本地分支来跟踪我的分叉:

# conventionally it's named 'upstream', but it coincides with git terminology
# so for clarity's sake, I'll name it 'source' in this example
git remote rename origin source
git remote add origin <my-fork>

# errors here:
# fatal: the requested upstream branch 'origin' does not exist
git branch --set-upstream-to origin/master

基本上发生的事情是你的本地repo不知道origin中的分支,实际上git提示你可能希望先运行git fetch,但是一个简单的git fetch不会这样做,因为它会自动从当前默认的remote中获取,仍然是source
所以你首先需要做的是:

# one time
git fetch origin

# also set origin as default remote for fetch
git fetch --set-upstream origin

那么您的git branch --set-upstream-to ...应该可以正常工作。

相关问题