一种选择是将服务器特定的部署设置完全保留在版本控制存储库之外.
这意味着在服务器上手动上传和更改它们,但不需要经常合并.它还使数据库密码之类的东西不受版本控制,这可能是一件好事.
例如,当我在Django应用程序上工作时,我检查一个settings.py包含以下内容的文件:
from deploy import *.该from deploy import *行会拉入deploy.py文件中的所有项目(如果存在).在测试/暂存/生产服务器上,我将创建此文件并将特定于服务器的设置放入其中.因为导入发生在它们的末尾settings.py将覆盖主设置文件中的任何本地开发特定设置.
这样做意味着在本地运行和开发所需的所有内容都会被检入版本控制,但不会检入特定于服务器和/或敏感的信息(如密码)(因此永远不需要合并).它需要一些额外的工作来设置(添加导入行并deploy.py最初在服务器上创建文件).
这个特殊的方案适用于Django项目,但也许类似的想法对你有用.