Eclipse Git 插件 - 从仓库中删除文件而不删除本地文件

18
使用Egit插件,是否有可能在不删除本地副本的情况下永久从源代码控制中删除文件?即,是否有与运行“git rm --cached”等效的GUI操作?(已编辑以简化问题)

1
取消跟踪我认为意味着取消跟踪更改。为什么不直接删除文件,然后提交以将其从上游存储库中删除? - Paul Webster
我不想在本地删除文件,我想阻止它们被拉取时被覆盖。删除并重新创建不是一个选项,因为其中一些文件和文件夹是 Force.com IDE 不允许您删除的。 - naomi
1
虽然它不会从代码仓库中删除该文件,但是在这方面,“假设未改动”设置(团队 > 高级)应该有所帮助。请注意该设置的一些要注意的地方(详情请参阅 http://schacon.github.com/git/git-update-index.html)。 - Sri Sankaran
完成这个操作后,如果有人获取了相同的提交,那么会删除他们本地的文件吗? - golimar
5个回答

15

我不行。因为这个问题和一堆其他的 bug,我停止使用 EGit。然而那是一年多以前的事情了,所以 Egit 的开发人员现在可能已经改进了它。 - naomi
2
@naomi 不是的。四月份他们似乎只是认为这太难了,不会尝试修复它。 - EdGruberman
1
这是我最受欢迎的问题和回答。可惜答案是“它只是坏了”! - naomi
标准的提交对话框对我也不起作用,但我可以在Git暂存视图中提交更改。 - golimar

5
Team -> Advanced -> Untrack

对于我来说,(git rm --cached) 解决了我的问题。


对于那些对此解决方案感兴趣的人...在完成上述步骤后,只需提交并推送到您的远程仓库,它应该能够完美运行。好的回复,非常感谢! - labheshr

4
我曾经遇到过同样的问题,因为我一开始没有将目录和文件加入到.ignore中。我尝试了“取消跟踪”和“从索引中删除”的方法,但都没有帮助(由于Egit问题仍未解决)。最终,我在本地删除了文件(只保留了bugs项目),提交并推送到github,然后撤销了本地的删除并将文件添加到.ignore中。虽然这种方法不够优雅,但它确实奏效了。我花费了很多时间和精力来解决这个问题,希望我的经验能够帮助到其他人。

0

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

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

0

另一个选项与评论中Sri Sankaran所建议的类似,即更新索引以假定未修改配置文件:

在Egit的偏好设置中,您可以列出“假定未更改”的文件:

assume unchanged

该文件仍保持版本控制,并保存在磁盘上,但对其进行的任何更改都不会被检测到。


1
谢谢 - 我找不到那组偏好设置,它们在哪里? - naomi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接