eclipse - git eclipse 总是需要 pull 所有已经更新的项目

标签 eclipse git github version-control

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


这就是终端 enter image description here

最佳答案

这只是对您的一些问题的回答,也许应该改为评论。

提交和 blob(blob 包含文件内容)都是 git DAG 中的对象,当没有任何对象引用它(即不是历史的一部分)时,对象变成“悬空”(无法访问、孤立或松散),git 将清理如果您运行 git gc(删除超过 2 周的悬挂对象),则悬挂对象并且一些 git 命令在完成操作后也会运行 git gc --auto

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

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

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

在您的情况下,您可能需要运行 git prunegit gc --agressivegit gc --prune=now 来删除所有悬挂的物体(为了以防万一,不要忘记先做一个备份)

关于eclipse - git eclipse 总是需要 pull 所有已经更新的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32089951/

相关文章:

java - 在运行过程中从 Java 项目中提取文件

Java GitHub API -org.kohsuke.github 将存储库克隆到本地计算机

javascript - 源映射错误 : Error: request failed with status 404 Resource URL: https://cdn. jsdelivr.net/npm/@barba/core@2.9.7 源映射 URL : barba. umd.js.map

git - 如何在 git 中使用 gitignore 命令

git - TortoiseGit 麻烦 : git did not exit cleanly (exit code 128)

git - 如何获取本地 PC 上的所有远程分支?

java - 如何为 Java 程序创建 .msi 文件? ( eclipse )

java - 如何跨工作区保存 E​​clipse 启动配置文件?

java - 从我的 jsp 引用外部项目时出现问题 - "ExternalClass cannot be resolved to a type"

git - 尝试将存储库克隆到其中包含 'aux' 目录的 Windows 7