git eclipse总是必须提取已经更新的项目

时间:2015-08-19 08:11:37

标签: eclipse git github version-control

我有来自git的这种奇怪的行为,即使我将从eclipse egit插件中描述它,从终端我也有同样的问题。
我在工作区中有一个项目,在我和其他开发人员之间共享,当我同步项目时它告诉我,我必须推送像14/16一样的提交ant我必须拉一个,即使根本没有提交。
每当我执行拉动时,似乎项目现在已同步,因此我再次推动“团队同步”并再次显示14/16提交拉出。
这不是唯一奇怪的事情,另一个是我可以在我提取这些提交之后将提交推送到远程但其他开发人员不能,即使他们做了我做过的同样的事情,它也告诉他们问题是“晃来晃去” 在写下我找到的一些解决方案以及我尝试过的内容之前,我想说的是提交的数量实际上是整个项目的历史。
在我完成fsck之后,我尝试在远程存储库中使用gc手册gc,我有效地遇到了两个悬空提交(为什么两个悬空提交和egit说一个悬空blob?我不知道...... ),这已经删除了两个悬空提交,所以我从我的工作区中删除了项目再次克隆它,但同样的错误再次发生。
所以我使用了另一个解决方案http://www.tekkie.ro/news/howto-remove-all-dangling-commits-from-your-git-repository/,总是在远程存储库上,但问题仍然是一样的 因此,即使已经阅读了几乎所有的文件,我都没有看出一些事情:
1)悬挂提交和悬空blob之间的区别是什么? 2)悬空提交/ blob是如何发生的? 3)如何恢复项目的存储库?
UPDATE
我开始赏金,因为我真的想要承担并解决问题,所以为此,我将清楚我需要理解的内容:
我有一个项目,每次我使用团队同步,想要重新拉取所有历史记录,不仅对我而且对我的同事的每一个人,我们使用gitblit作为远程回购。我能做什么?我在哪里可以搜索可能的错误?
UPDATE
那是 EGIT enter image description here

这就是终端 enter image description here

1 个答案:

答案 0 :(得分:0)

这只是你的一些问题的答案,也许它应该是评论。

提交和blob(blob包含文件内容)是git DAG中的所有对象,对象变为“悬空”。 (无法访问,孤儿或松散)当没有任何引用它(即不是历史的一部分)时,如果你运行git gc(删除超过2周的悬空物体),git将清理悬空物体,并且一些git命令也会运行git gc --auto完成他们的操作后。{/ p>

当您在DAG中进行更改(即,将内容修改或修改或重新添加到索引中)时,某些对象将被替换为新对象,然后旧对象将变为悬空。

您可以运行git fsck --unreachable来查找悬空的对象。

注意: reflog引用的对象通常不被视为悬空。

在您的情况下,您可能需要运行git prunegit gc --agressivegit gc --prune=now以删除所有悬空物品(不要忘记先制作一个bakup,以防万一)