1

我刚开始将 git 与 bitbucket.org 和 egit(eclipse git 插件)结合用于家庭项目。我以前从未使用过 git(对于大学项目我只使用过 SVN),所以我想了解更多关于 git 的知识。我成功地创建了一个 bitbucket 存储库并将其克隆到我的笔记本电脑和台式电脑,并对本地存储库进行了一些更改。我在笔记本电脑和台式电脑上进行了一些更改,我知道这会在合并时导致冲突。因此,我将第一个更改从笔记本电脑推送到 bitbucket,并希望当我尝试从台式电脑推送内容时 git 会通知我冲突。当我现在尝试将更改从我的台式电脑推送到 bitbucket 时,它说我的推送被拒绝(它没有说明它为什么拒绝它)。如果我尝试从 bitbucket 获取某些东西到我的台式电脑,我必须选择一个目标 ref。

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

我可以从哪里开始找到任何想法,这里发生了什么?

4

1 回答 1

1

这是 Egit 中一个相当烦人的错误,当您使用 Egit 添加远程时,它不会正确配置远程。我已经看过一些教程和博客文章,但它们并不总是有帮助(有时甚至是错误的)。

要解决这个问题,最简单的方法可能是实际使用 Git 添加远程. 为此(假设您已经安装了 Git),请打开终端窗口,然后导航到无法获取的机器上的存储库。

在回购中,做

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

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

分别用您的 bitbucket 用户名和 repo 名称替换 bitsUSER和。REPO

这使用 SSH url,假设您已使用 bitbucket 注册了 SSH 密钥。如果您想改用 HTTPS url,您可以简单地在添加命令中使用它(您可以从 bitbucket 上的 repo 页面获取完整的 url)。

使用 Git 添加遥控器(而不是 Egit),将为遥控器工作进行所需的设置;然后,您应该能够使用 Git 和使用 Egit 进行推送和获取/拉取。


技术细节说明: Egit 在添加远程时没有设置默认的 refspec(或者在添加远程进行推送时,它没有设置用于获取的 refspec)。相反,它在第一次获取时要求用户输入一个 refspec(这与它询问您 ref name 的对话框相同),甚至没有建议一个合理的默认值。

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

于 2013-04-13T17:56:55.423 回答