mau*_*rok 5 eclipse git version-control github
我有来自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之间有什么区别?
3)如何恢复项目的存储库?
更新
我开始赏金,因为我真的想要解决问题,所以为此我会清楚我需要理解的:
我有一个项目,每次我使用团队同步,想要重新拉动所有的历史不仅对我而且对于我的同事的每一个人,我们都使用gitblit作为远程回购.我能做什么?我在哪里可以搜索可能的错误?
更新
那是EGIT
2)悬空提交/ blob是如何发生的?

这只是对您的一些问题的回答,也许应该发表评论。
提交和 blob(blob 包含文件内容)是 git DAG 中的所有对象,当没有任何对象引用它(即不是历史记录的一部分)时,对象将变为“悬空”(无法访问、孤立或松散),并且 git 将清理悬空对象,如果你运行git gc(删除超过 2 周的悬挂对象),一些 git 命令git gc --auto在完成操作后也会运行。
当您在 DAG 中进行更改(即变基、修改或重新向索引添加内容)时,某些对象将被新对象替换,然后旧对象将变为悬空。
你可以跑去git fsck --unreachable寻找悬挂的物体。
注意: reflog 引用的对象通常不被视为悬空。
在您的情况下,您可能需要运行git prune,git gc --agressive或git gc --prune=now删除所有悬挂的对象(不要忘记先进行备份,以防万一)