【问题标题】:Egit / Github - Get files from partnerEgit / Github - 从合作伙伴那里获取文件
【发布时间】:2013-02-02 11:49:36
【问题描述】:

这可能是一个愚蠢的问题,但经过几次尝试解决这个问题后,我感到很沮丧。我想使用 github 来托管我的项目,我们是 2 个人从事该项目,目的是分享工作。并互相帮助。

我设法创建了 resepetory,并提交到 master 分支。如果另一个人删除了整个项目,他会得到最新的更新,但我确信这不是它应该工作的方式。

假设我提交了一个新的类文件。我提交了这个文件,别人怎么下载这个文件?我们已经尝试过拉、同步等,但没有任何运气。我们发现给他“我的”最新更新的唯一方法是让他删除所有内容并从头开始制作项目。

我错过了什么?我们如何同步工作空间?所以我可以在打开 Eclipse 时查看并下载他的更改? (我们不在同一个班级工作)。所以我真正想做的就是下载他的最新提交。

编辑:我的解决方案是我的搭档在本地 git 工作区的副本中工作。因此,他没有修改本地 repo,而是在 Eclipse 工作区中修改它的副本。因此,当他拉动时,没有任何更新。我也从 Egit 切换到 GitHub 命令行工具,我爱上了。谢谢大家:)

【问题讨论】:

    标签: java android eclipse github egit


    【解决方案1】:

    通常使用 GitHub,您描述的所有内容都可以完美运行,我没有遇到任何类似的问题。

    关于 git 的一点是,提交与 SVN 中的提交有点不同。使用 git,您可以使用 pushpull 与远程存储库进行交互。

    我不知道你说的是什么意思:

    如果其他人删除了整个项目,他会得到最新的更新, 但我确信这不是它应该的工作方式。

    话虽如此,我从未使用过 Egit,我更喜欢坚持使用命令行来满足我所有的 git 需求。我在使用其他软件(Sublime Text 2)时遇到了问题,我必须退出编辑器,然后运行我的所有提交和其他 git 操作。我不知道 Eclipse 与 git 的总体表现如何。

    尝试让您的合作伙伴运行git remote -v,以确保他正确跟踪回购。另外,你知道他是否为 GitHub 设置了 SSH 密钥,还是你通过 https 发送推送?

    请记住,这很难帮助您解决问题,因为我没有坐在您的电脑前。 GitHub Help 有一些关于设置 git 和远程存储库的非常好的演练。

    另外,我强烈建议您花时间阅读CodeSchool git 简介。如果这是您第一次使用 Git,那么这是最好的起点。

    【讨论】:

    • 谢谢,我删除的意思是因为拉取请求没有获取任何东西。 (本地分支是最新的)即使我只是对远程存储库进行了一系列更改,他的 git 声称一切都是最新的。他需要删除所有内容并从 Create New Project 中获取。完成后,他将获得新文件。我已经阅读了很多关于它应该如何工作的页面。但事实并非如此!无论如何,感谢您的回答,我再次阅读低谷以检查我是否遗漏了什么。我了解在此问题上通过 Internet 提供的帮助非常困难/有限。
    • @iNzzane 这是你第一次使用 Git 吗?
    • @iNzzane 他是否尝试过cloning 项目,而不是从 Eclipse 菜单中创建一个新项目。建议从命令行执行此操作,我发现它更可靠,并且具有更好的错误报告。
    • 是的,他正在克隆它。也不是从命令行强硬。是的,这是我们第一次使用 git。我认为我的工作还可以,因为我可以在线更新我的提交。但他遇到了问题,目前一个“快进”错误阻止他提交和推动.. 谷歌搜索建议在他提交之前拉。但它只是说“一切都是最新的”和“结果失败”。但一切都不是最新的。因为我已经推送了3个类,远程都可以看到。
    • @iNzzane 是私有存储库吗?当我访问您在下面发布的链接时,我只看到您的“try_git”回购和“Timelonn”。 'Timelonn' 给我一条消息“这里还没有什么可看的。”
    【解决方案2】:

    还有更复杂的场景,但基本上,您需要将您的提交“推送”到上游,并拉取您同事的。

    克隆存储库。通过克隆它,您将保证它有一个“来源”,即 github 远程。您在本地存储库中进行更改,随时提交。当您处于里程碑时,使用 Team > Push 将您的所有提交推送到 github。如下所述,您的同事将拉动它们。

    当你尝试推送时,你可能会发现你的同事已经推送了更改,而 git 在你合并之前不允许你推送。尝试 Team > Pull 它将远程更改合并到您的本地存储库中。如果没有冲突,您现在可以推送。如果存在冲突,请修复它们然后提交。然后推。

    这是一个很大的简化,但可以帮助您入门。要点是,在 git 中,SVN 提交的等价物是两个,也许是三个操作:添加、提交、推送。 Git pull 有点类似于 SVN checkout。

    花一天时间阅读 git。 GitHub 上有很棒的文档。一旦掌握了窍门,您就会爱上它。

    【讨论】:

    • 我确信这个工具很棒。我花了几个小时阅读,我认为我了解基础知识。但仍然一路错误。只想看到一个单一的功能工作!哈哈,在更严肃的方面,我可能需要花更多时间阅读。一定有什么问题,我只是还不知道是什么。但我想它是这样的? 1. 创建仓库。 2. 提交第一个更改并推送。 3.合作伙伴克隆回购。 4. 合作伙伴进行一些更改并提交和推送。 5. 我拉.. 6. 我很高兴。正确的?但我不开心.. 还没有!
    • 您描述的场景应该可以工作。通过查看 github 验证步骤 2 中的推送是否有效。在第 6 步中,您可能必须合并,但除此之外,您应该很好。您是否看到错误消息?它说什么?
    【解决方案3】:

    当使用 git 协作项目时,您同时管理本地和远程存储库。当您提交时,您只是将更改保存到本地存储库。提交后,您需要执行 push 以将您的更改保存到远程存储库。之后,如果您的合作者执行 pull,他将获得您的更改。

    【讨论】:

    • 谢谢,但我正在使用提交和推送。对远程存储库进行更改。因为如果我删除并添加我的项目,我仍然会得到所有文件。即便如此,每次我对文件进行编辑时,他都必须删除该项目。我确定我们做错了什么。我只是不知道是什么。
    • @iNzzane 开始很简单,当你push 到 GitHub 时,你会收到提示成功或失败的消息吗?当您的伙伴运行git pull 时,会为他显示什么信息?
    • 当我推送到远程..存储库更新(在 github 上)。 egit声称它是成功的。然后我的搭档尝试拉取,但随后他声称他的本地存储库与远程同步。 (女巫显然不是)。
    • @iNzzane,当您和您的合作伙伴执行 git remote -v 时,您会得到与您的存储库位置匹配的结果吗?
    • 匹配结果是。格式:github.com/iNzzane/projectname.git (fetch) 和 pull 一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多