2013-04-13 126 views
1

我剛剛開始將git與bitbucket.org和egit(eclipse git插件)結合起來用於家庭項目。我以前從未使用過git(對於只使用SVN的大學項目),所以我想了解更多關於git的知識。 我成功創建並克隆了我的筆記本電腦和桌面電腦的bitbucket存儲庫,並對本地存儲庫進行了一些更改。 我在筆記本電腦和臺式電腦上做了一些更改,我知道這些更改會導致合併時發生衝突。因此,我將筆記本電腦的第一次更改推送到bitbucket,並期望當我嘗試從桌面PC推送東西時,git會通知我有關衝突。當我現在嘗試將更改從桌面PC推送到bitbucket時,它說我的推送被拒絕了(它沒有說明拒絕它的原因)。 如果我嘗試從bitbucket中取回某些東西到我的臺式電腦,我必須選擇一個目的地ref。這對我來說很奇怪,因爲我想將bitbucket存儲庫中的更改提取到我的臺式機上的本地存儲庫中。Egit無法從遠程存儲庫中獲取

我讀了一些關於git的小教程,主要是手工配置的egit,所以我可能會搞砸配置或者我在這裏使用錯誤的工作流。

任何想法,我可以開始發現,這是怎麼回事?

回答

1

這是Egit中一個相當煩人的錯誤,當您使用Egit添加它時,它不會正確配置遠程設備。我已經看到了一些教程和博客條目,但它們並不總是有幫助的(有時只是錯誤的)。

要解決這個問題,最簡單的方法可能是使用Git實際上添加遠程。要做到這一點(並假設你已經安裝了Git),打開一個終端窗口,然後導航到你的機器上,在那裏讀取不起作用。

在回購,做

git remote remove origin 
git remote add origin [email protected]:USER/REPO.git 

在這些命令中,origin是一個本地名稱,以確定遠程;你可以自由選擇它(它在本地回購中必須是唯一的),但是在刪除命令中必須是當前存在於回購中的遠程名稱。

分別將USERREPO的位替換爲您的bitbucket用戶名和repo名稱。

這使用SSH網址,它假定您已經使用bitbucket註冊了SSH密鑰。如果你想使用HTTPS url,你可以簡單地在add命令中使用它(你可以從bitbucket上的repo頁面獲得完整的url)。

使用Git添加遠程(而不是Egit),將使遠程工作所需的設置;那麼您應該能夠使用Git和使用Egit來推送和讀取/拉取。


技術細節注意:當添加遠程(或加推遠程時,它不成立的Refspec用於讀取)例如:It不設置默認的Refspec。相反,它會要求用戶在第一次獲取時輸入一個refspec(這與它要求您提供參考名稱的對話框相同),甚至沒有提供任何理智的默認值。

使用Git添加遠程時,push和fetch refspecs被設置爲默認值,該默認值適用於絕大多數用例。

相關問題