假设我有两个分支,master
和staging
,我希望在每个分支中有两个不同版本的/robots.txt
:
主:
# www.robotstxt.org/
# Allow crawling of all content
User-agent: *
Disallow:
分期
# www.robotstxt.org/
# Disallow crawling of all content
User-agent: *
Disallow: /
除了管理暂存环境的最佳实践外,如何在忽略此文件的同时将更新从暂存合并到主服务器,反之亦然?我已经尝试了一个.gitattributes文件,上面写着:robots.txt merge=ours
,但这只发生在合并冲突和/或不适用于此工作流程时。
任何想法?
答案 0 :(得分:3)
您应该有一个git add -p
和robots.txt.test
,并附带一个构建过程,该过程会根据您生成的图像类型部署相应的构建过程:例如:用于内部测试的图像,与外部部署相比。
或者,可能是单个文件robots.txt.deploy
,其中包含基于某些输入生成robots.txt.in
的预处理语言。
分支不是在同一组配置文件中维护不同类型配置的适当工具,用于“内部”与“实时”部署等。
当两个不同的流必须合并为一个时,使用合并。如果必须维护差异(例如同一配置文件中的不同值),则无法工作。当您合并树中示例位置中具有robots.txt
的两个分支时,结果必须为robots.txt
。
如果要维护两个无限分歧的流,则不合并。您可以使用robots.txt
将各个更改从一个更改为另一个。
您可以避免挑选任何触及git cherry-pick
的更改,或至少robots.txt
中不常见的更改。
在版本控制下添加文件,但随后尝试让版本控制忽略它,这是公然的矛盾。
答案 1 :(得分:1)