2011-12-22 168 views
3

我有一个git问题/问题。推送到远程分支

我们使用bitbucket作为我们的远程回购。到现在为止,我们只有主分支。

我正在为此工作的另一个人创建了一个“开发”分支,现在该项目为我们继续工作。

我一直在本地工作,并做出了改变并提交了他们。

我现在想将这些推送到远程“开发”分支。

我认为

git push origin develop 

会做,但我得到

error: src refspec develop does not match any. 

这是什么意思?我可以看到开发分支确实存在,所以我做错了什么?

非常感谢您的帮助!

回答

1

develop存在于哪里?本地?远程?或两者?试试:

git push origin HEAD:develop 
+0

开发只存在于远程。我在主分支当地工作......我想这是问题所在。我试图做头部:开发和得到这个... – markstewie 2011-12-22 03:07:17

+0

错误:未能推动一些裁判'https://[email protected]/mark_stewart/museum-poisoners.git' 为了防止你失去历史,非快速更新被拒绝 在再次推送之前合并远程更改(例如'git pull')。有关详细信息,请参阅 '关于'git push --help'快速转发'的部分。 – markstewie 2011-12-22 03:07:28

+0

这是一个“非快进”更新。那就是:远程回购站中的一些更改不在本地。推之前你应该把它们拉进去。 – 2011-12-22 03:12:17

0

您还没有从服务器上拉开发展。您有一个远程开发分支,但您没有本地开发跟踪分支。

git checkout develop 

这将创建本地开发跟踪分支。

如果您已经提交了更改,那些更改位于之前使用的主分支上。将这些更改移至开发分支会有点复杂。

移动这些更改可以解释一旦我们确定了您实际存在的问题。

3

感谢您的回答,我已经重新开始工作。

对于任何有兴趣的人来说,我就是这么做的。

我做了

git pull origin master 

和更新我的本地回购,这是现在知道有一个远程开发分支

我那么做

git checkout develop 

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

git merge master 

合并我在做师傅到开发分支 的所有更改然后做

git push origin develop 

工作的罚款。

现在我所有的改变在开发分支中都是安全的,我可以恢复主分支(我在工作的地方),所以它和远程主分支一样,一切都如它应该的那样。

不知道如果这是最简单的方法去了解它,但我学到了很多关于git的知识。

再次感谢您的回答。

1

如果使用

git push <repo> <src> 

例如, 混帐推起源发展

然后混帐希望能够找到所谓的“发展”,它可以推到相同的远程分支的本地分支名称。由于没有该名称的本地分支,因此会出现错误。

所以,如果你要推到具有本地不同名称的新的(或现有的)远程分支,那么你会做到以下几点:

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

例如,

git push origin master:develop 

那应该管用。 *检查*。它的确如此。

0

你忘了提交你的工作吗?当你克隆一个空的回购,添加文件但忘记在推送前提交它们时,会发生这种情况。