我有一个裸存储库和两个工作副本 - 一个在我的机器上,另一个在服务器上
事实证明,我必须.gitignore
某个文件必须特定于每台机器。我们称之为“settings.py
”。此文件已提交。
我确实在.gitignore中放了'settings.py
'来忽略它。当我现在更改我的机器上的文件时,git status仍告诉我
modified: settings.py
我发现我必须删除settings.py,如下所示:
git rm --cached settings.py
然后git add .
,然后是git commit
。
但是,当我现在将其推送到裸仓库并将其拉到服务器上的工作副本时,settings.py
将被删除 - 这很糟糕,因为我必须保留此特定settings.py
。< / p>
我认为我可以制作settings.py
的副本,并在删除后将其重新放入,但我觉得必须有更好的方法来做到这一点。
答案 0 :(得分:9)
您可以告诉git完全忽略对已跟踪文件的更改,而无需将其删除。使用此命令:
git update-index --assume-unchanged [FILENAME]
然后,如果您想稍后跟踪该文件:
git update-index --no-assume-unchanged [FILENAME]
答案 1 :(得分:7)
您是否可以永久删除settings.py(本地和远程),并且:
setting_remote
文件setting_local
文件(即具有本地特定设置)settings.py
文件。
这样,settings.py
保持“私密”(非版本化)。但是每个环境的特定值都是版本化的,每个都设置在自己的文件中,没有任何合并问题。