Egit无法从远程存储库获取

时间:2013-04-13 17:46:09

标签: git bitbucket egit

我刚开始将git与bitbucket.org和egit(eclipse git插件)结合使用,用于家庭项目。我之前从未使用过git(对于大学项目我只使用过SVN),所以我想学习更多关于git的知识。 我成功创建并克隆了一个bitbucket存储库到我的笔记本电脑和台式机,并对本地存储库进行了一些更改。 我在笔记本电脑和台式电脑上做了一些更改,我知道这会在合并时产生冲突。所以我把我的笔记本电脑的第一个更改推到了bitbucket,并且当我尝试从我的台式机上推送东西时,我希望git会告诉我有关冲突的信息。当我现在尝试将更改从我的桌面PC推送到bitbucket时,它说我的推送被拒绝(它没有说明为什么拒绝它)。 如果我尝试从bitbucket获取东西到我的台式机,我必须选择目的地参考。这对我来说很奇怪,因为我想将bitbucket存储库中的更改提取到我桌面电脑上的本地存储库中。

我阅读了一些关于git的小教程,并且主要是手工配置,所以我可能搞砸了配置,或者我在这里使用了错误的工作流程。

我可以开始发现的任何想法,这里发生了什么?

1 个答案:

答案 0 :(得分:1)

这是Egit中一个相当恼人的错误,当您使用Egit添加它时,它无法正确配置遥控器。我已经看过一些教程和博客条目,但它们并不总是有用(有时候只是错误)。

要解决此问题,最简单的方法可能就是使用Git添加远程。为此(假设您已经安装了Git),打开一个终端窗口,然后导航到机器上的repo,其中提取不起作用。

在回购中,做

git remote remove origin
git remote add origin git@bitbucket.org:USER/REPO.git

在这些命令中,origin是用于标识该远程的本地名称;您可以自由选择它(它必须在本地仓库中是唯一的),但在删除命令中,当然必须是当前存在于您的仓库中的遥控器的名称。

将bit USERREPO分别替换为bitbucket用户名和repo名称。

这使用SSH网址,假设您已经使用bitbucket注册了SSH密钥。如果你想使用HTTPS网址,你可以在添加命令中使用它(你可以从bitbucket上的repo页面获得完整的URL)。

使用Git添加远程(而不是Egit),将使远程工作所需的设置;然后你应该能够使用Git和使用Egit推送和获取/拉动。


技术细节说明:添加远程时,Egit不会设置默认的refspec(或者在添加远程进行推送时,它不会设置refspec进行提取)。相反,它要求用户在第一次提取时输入refspec(这与它要求你引用名称的对话框相同),甚至没有提出合理的默认值。

使用Git添加遥控器时,push和fetch refspecs设置为默认值,适用于绝大多数用例。