如何不在每个合并事件中合并webconfig文件?

时间:2019-07-19 08:36:42

标签: c# asp.net git bitbucket

我们的开发团队在测试或开发阶段使用了不同的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

1 个答案:

答案 0 :(得分:0)

主要有两种解决方案:

  1. 只有一个配置文件,并告诉git不要跟踪该文件上的(本地)修改。

    git update-index-假定不变

  2. 一个更优雅的解决方案是在git(包含生产代码)中仅跟踪connectionstring_template.confconnectionstring.conf文件已添加到您的.gitignore。因此,当您第一次在计算机上部署代码时,只需复制并重命名模板文件,然后根据需要对其进行调整。请注意,git不会跟踪配置文件,因此您无法将测试配置传播到生产环境。如果要从模板文件自动更新生产环境中的所有conf文件,可以使用一个简单的脚本来完成此工作(手动启动或使用git hooks启动)。