我们的开发团队在测试或开发阶段使用了不同的Webconfig设置(例如connectionstring等),有时会无意间推送这些更改,因此,这会带来很多问题。推送之后,詹金斯(Jenkins)应用更改,我们浪费大量时间来查找错误。我们正在通过Bitbucket使用git控制系统。如何预防这些问题?
我也试图像这样对文件进行gitattribute,但是之后,新的分支推送仍将其合并。
# Source https://help.github.com/articles/dealing-with-line-endings
# Set default behaviour, in case users don't have core.autocrlf set.
* text=auto
# Explicitly declare text files we want to always be normalized and
converted
# to native line endings on checkout.
---is it necessary to specify?
# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf
# Denote all files that are truly binary and should not be modified.
*.config binary
*.jpg binary
*.ico binary
core.autocrlf=true
答案 0 :(得分:0)
主要有两种解决方案:
只有一个配置文件,并告诉git不要跟踪该文件上的(本地)修改。
git update-index-假定不变
一个更优雅的解决方案是在git(包含生产代码)中仅跟踪connectionstring_template.conf
。 connectionstring.conf
文件已添加到您的.gitignore
。因此,当您第一次在计算机上部署代码时,只需复制并重命名模板文件,然后根据需要对其进行调整。请注意,git不会跟踪配置文件,因此您无法将测试配置传播到生产环境。如果要从模板文件自动更新生产环境中的所有conf文件,可以使用一个简单的脚本来完成此工作(手动启动或使用git hooks启动)。