【发布时间】:2019-10-04 13:50:28
【问题描述】:
我团队中的每个开发人员在其本地工作副本的根目录中都有一个 .idea 文件。有人在他们的全局 .gitignore 中没有它(并且它不在任何其他 .gitignore 中),所以他们不小心将它提交给了我们的远程仓库。现在正在跟踪它。
我们想再次取消跟踪,但我们需要将 .idea 文件保留在每台本地计算机上。规范的建议是 git rm -r --cache .idea 然后推送到远程,但是虽然这会在运行命令的机器上留下 .idea 目录,但下次他们拉动时,.idea 仍会从其他机器上删除。在许多类似的问题中都提到了这一点,但仅在 cmets 等中有所提及,并且只有一系列骇人听闻的解决方法需要每个开发人员采取一些措施来避免删除。这对于一个大型或分散的团队来说是不可行的,并且在任何情况下都感觉不合适,因为我们想要操作的唯一更改是在 repo 历史记录上,而不是本地文件系统上。将 .idea 目录的跟踪状态恢复到原来的状态 - 未跟踪,git 不理会它。
实现这一目标的规范或最佳实践方法是什么?
【问题讨论】:
-
如果您使用的是 Maven,请告诉人们他们需要重新导入项目。完毕。 (这也是分支和同行评审的目的)
-
@ThorbjørnRavnAndersen “告诉人们他们需要......” - 根据我试图避免这种情况的问题
-
他们已经推送了本地副本了吗?
-
你知道你可以强制推送到更早的提交吗?
-
@ThorbjørnRavnAndersen 我没有考虑过(仅初级 git 用户),但如果您建议将历史回滚到错误提交之前,我不知道错误已经存在多长时间从那时起,此 repo 和其他更改已提交给分支。不过感谢您的建议