推送到远程分支

3

我有一个Git的问题/疑问。

我们使用Bitbucket作为远程仓库。到目前为止,我们只有主分支。

与我合作的另一个人现在创建了一个“develop”分支,现在项目已经上线,我们需要继续开发。

我一直在本地工作,并进行了更改和提交。

现在我想将这些更改推送到远程的“develop”分支。

我认为

git push origin develop

我想做这件事,但是我遇到了问题

error: src refspec develop does not match any.

这是什么意思?我可以看到develop分支确实存在,那我错在哪里了?
非常感谢您的帮助!
5个回答

3
感谢您的回答,我已经让事情重新正常运转了。
对于任何感兴趣的人,这是我做的方法。
我做了一个
git pull origin master

我更新了本地版本库,现在它知道有一个名为“develop”的远程分支。

接着我执行了

git checkout develop

切换到我的本地开发分支.. 然后

git merge master

我希望将我在主分支上所做的所有更改合并到开发分支中,然后执行

git push origin develop

工作得很好。

现在我的所有更改都安全地保存在develop分支中,我可以还原主分支(我正在其中工作),使其与远程主分支相同,一切都正常。

不确定这是否是最简单的方法,但我学到了很多关于Git的知识。

再次感谢您的回答。


1

develop 存在于哪里?本地?远程?还是两者都有?请尝试:

git push origin HEAD:develop

开发仅存在于远程。我正在本地的主分支上工作...我想这就是问题所在。我尝试执行HEAD:develop并得到了这个... - markstewie
错误:无法将一些引用推送到'https://mark_stewart@bitbucket.org/mark_stewart/museum-poisoners.git' 为了防止您丢失历史记录,非快进式更新被拒绝。 在再次推送之前合并远程更改(例如'git pull')。有关详细信息,请参见'git push --help'中的“关于快进”的说明。 - markstewie
这是一个非快进式更新。也就是说:远程仓库中的某些更改不在本地。在推送之前,您应该将它们拉取到本地。 - J-16 SDiZ
或者,如果您确信可以安全地覆盖远程的 develop 更改,则可以使用 git push -f - dahlbyk

1

你是否忘记提交你的工作?当你克隆一个空仓库,添加文件但在推送之前忘记提交时会发生这种情况。


1

如果您使用

git push <repo> <src>

例如,git push origin develop

然后git期望找到一个名为“develop”的本地分支,以便将其推送到同名的远程分支。由于没有该名称的本地分支,因此会出现错误。

因此,如果您想要将其推送到具有不同名称的新(或现有)远程分支,则应执行以下操作:

git push <repo> <src>:<dst>

例如,

git push origin master:develop

应该可以。*检查一下*。没问题。


0

你还没有从服务器上拉取develop分支。你有一个远程的develop分支,但是你没有本地的develop跟踪分支。

git checkout develop

这将创建本地开发跟踪分支。
如果您已提交更改,则这些更改位于您之前使用的主分支上。将这些更改移动到开发分支中要复杂一些。
一旦我们确定了您实际遇到的问题,就可以解释如何移动这些更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接