如何在不影响其他工作副本的情况下删除已提交的文件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (46)

我有一个空旷的存储库和两个工作副本--一个在我的机器上,另一个在服务器上。

结果我不得不.gitignore必须针对每台机器的特定文件。让我们称之为“settings.py“”。此文件已提交。

我确实说了settings.py“在.gitignore里,可以忽略它。当我现在更改机器上的文件时,git状态仍然告诉我

modified:  settings.py

我想我得把布景移除,就像这样:

git rm --cached settings.py

然后git add .,紧随其后git commit

但是当我把它推到回购器上,把它拉到服务器上的工作副本上时,settings.py被删除-这很糟糕,因为我必须保持这个特定的settings.py

我想我可以复制一份settings.py一旦它被删除,就放回去,但我觉得必须有更好的方法来做到这一点。

提问于
用户回答回答于

可以告诉git完全忽略对跟踪文件的更改,而不必删除它们。使用以下命令:

git update-index --assume-unchanged [FILENAME]

然后,如果希望稍后跟踪该文件:

git update-index --no-assume-unchanged [FILENAME]
用户回答回答于

你是否宁愿永久删除setings.py(本地和远程),并且:

  • 版本asetting_remote远程侧的文件
  • 版本asetting_local file for the local side (ie with local specific settings)
  • 加一个过滤驱动器能够重建权利settings.py

那样的话,settings.py被保留为“私有”(非版本)。但是每个环境的特定值都是版本化的,每个集合都在自己的文件中,没有任何合并问题。

扫码关注云+社区