2011-12-22 262 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

你忘了提交你的工作嗎?當你克隆一個空的回購,添加文件但忘記在推送前提交它們時,會發生這種情況。