【问题标题】:Eclipse Git plugin - remove file from repo without deleting localEclipse Git 插件 - 从 repo 中删除文件而不删除本地文件
【发布时间】:2018-05-30 20:03:43
【问题描述】:

使用 Egit 插件,是否可以在不删除本地副本的情况下从源代码管理中永久删除文件?

即,是否有相当于运行“git rm --cached”的 GUI 操作?

(已编辑以简化问题)

【问题讨论】:

  • 取消跟踪我认为意味着取消跟踪更改。为什么不直接删除文件,然后提交从上游存储库中删除它?
  • 我不想在本地删除文件,我想阻止它们被拉取覆盖。删除和重新创建不是一种选择,因为某些文件和文件夹是 Force.com IDE 不允许您删除的。
  • 虽然它不会从存储库中删除文件,但“假设不变”设置(团队 > 高级)在这方面应该会有所帮助。请注意此设置的问题(请参阅schacon.github.com/git/git-update-index.html)。
  • 执行此操作后,如果有人获取相同的提交,它会删除他们的本地文件吗?

标签: eclipse git egit force.com


【解决方案1】:

我找到了答案。 Team->Untrack 确实相当于“rm --cached”。但是,当您取消跟踪然后尝试提交时,有一个已知的错误会产生奇怪的行为。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=363405

【讨论】:

  • 我做不到。由于这个和其他一些错误,我停止使用 EGit。不过那是一年多以前的事了,所以 Egit 开发人员现在可能已经对其进行了改进。
  • @naomi 不。在 4 月,他们似乎只是认为这太难了,不会尝试修复它。
  • 这是我最赞成的问题,也是我最赞成的答案。可惜答案是“它刚刚坏了”!
  • 标准提交对话框对我也不起作用,但我可以在 Git Staging 视图中提交更改
【解决方案2】:
Team -> Advanced -> Untrack

为我完成了这项工作 (git rm --cached)。

【讨论】:

  • 对于那些对此解决方案感兴趣的人......在上述步骤之后,只需提交并推送到您的遥控器,它应该会像一个魅力一样工作......很好的回复,非常感谢!
【解决方案3】:

我遇到了同样的问题,最初没有在 .ignore 中包含目录和文件。我还尝试了“取消跟踪”和“从索引中删除”的可能性,但都没有帮助(由于仍未解决的 Egit 问题)。 因此,最后我在本地删除了文件(将项目全部留在了 bug 中),提交并推送到 github,然后在本地取消删除并将文件添加到 .ignore。 非常不雅,但它有效。 我为此浪费了很多时间和精力,我希望这对某人有所帮助。

【讨论】:

    【解决方案4】:

    另一个选项,类似于 Sri Sankaran 在 cmets 中的建议,是更新索引以假设您的配置文件没有修改:

    在首选项中,在 Egit 中,您可以列出“假定未更改”的文件 :

    文件保持版本化并保留在磁盘上,但不会检测到任何修改。

    【讨论】:

    • 谢谢 - 我找不到那组偏好,它们在哪里?
    【解决方案5】:

    如果您需要从 eclipse 项目中删除不可见的文件夹(或文件):

    1. 将文件夹(或文件)添加到 .gitignore 文件中;
    2. 将文件夹替换到另一个目录
    3. 团队添加到索引、提交和推送
    4. 将文件夹(或文件)替换为项目文件夹

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-06
      • 2016-01-12
      • 2014-10-09
      • 2016-07-03
      • 2011-12-25
      • 2020-11-18
      • 2014-08-18
      • 2012-05-22
      相关资源
      最近更新 更多