保持设置文件分支特定
Keeping settings files branch specific
我目前运行正在为我公司的应用程序准备一些存储库。
我们有两个存储库需要设置文件才能使其构建正常运行。这些设置文件因本地、开发、暂存和生产构建而异。
每个项目都有开发、暂存和生产分支。
我添加了一个包含以下内容的 .gitattributes 文件:
gomo-campaign-api/src/main/webapp/WEB-INF/database.properties.xxx merge=ours
gomo-campaign-api/src/main/webapp/WEB-INF/gomo-messenger-config.xml.xxx merge=ours
gomo-campaign-api/src/main/webapp/WEB-INF/hibernate.cfg.xml.xxx merge=ours
gomo-campaign-api/src/main/webapp/WEB-INF/legacy-session-mapping.properties.xxx merge=ours
gomo-campaign-api/src/main/webapp/WEB-INF/log4j.properties.xxx merge=ours
gomo-campaign-api/src/main/webapp/WEB-INF/messengerPublisher.properties.xxx merge=ours
我还有一个 sh 文件 运行,内容如下:
git update-index --assume-unchanged gomo-campaign-api/src/main/config/messengerPublisher.properties.xxx
ECHO ignoring log4j.properties.xxx
git update-index --assume-unchanged gomo-campaign-api/src/main/config/log4j.properties.xxx
ECHO ignoring legacy-session-mapping.properties.xxx
git update-index --assume-unchanged gomo-campaign-api/src/main/config/legacy-session-mapping.properties.xxx
ECHO ignoring hibernate.cfg.xml.xxx
git update-index --assume-unchanged gomo-campaign-api/src/main/config/hibernate.cfg.xml.xxx
ECHO ignoring gomo-messenger-config.xml.xxx
git update-index --assume-unchanged gomo-campaign-api/src/main/config/gomo-messenger-config.xml.xxx
ECHO ignoring database.properties.xxx
git update-index --assume-unchanged gomo-campaign-api/src/main/config/database.properties.xxx
ECHO Initialisation completed.
如果我进行自动合并,这些策略似乎都不起作用,即
git checkout staging
git merge development
如果这些文件中的任何一个发生了任何更改,它仍在尝试将更改移过去。
我是否遗漏了这些策略的配置?
只有我和另一个用户会执行开发 > 暂存或暂存 > 产品合并(甚至有权这样做)
其他用户必须创建拉取请求才能将他们的分支机构投入开发。所以我可以很容易地阻止其他用户对开发文件进行更改并引入本地配置。
但是,我确实需要合并以在合并时忽略这些文件。
如果我要结帐暂存并进行更改并将其推送到存储库,我想要该更改但不希望将其移至生产环境。
我希望我已经足够详细地解释了自己。
提前致谢。
我们考虑的解决方案之一是将它们保存在单独的存储库中,但我们采用的解决方案是在 maven 中使用配置文件标记并为存储库中的每个环境创建设置文件
不是最优雅的解决方案,但仍然是一个解决方案。
我目前运行正在为我公司的应用程序准备一些存储库。
我们有两个存储库需要设置文件才能使其构建正常运行。这些设置文件因本地、开发、暂存和生产构建而异。
每个项目都有开发、暂存和生产分支。
我添加了一个包含以下内容的 .gitattributes 文件:
gomo-campaign-api/src/main/webapp/WEB-INF/database.properties.xxx merge=ours
gomo-campaign-api/src/main/webapp/WEB-INF/gomo-messenger-config.xml.xxx merge=ours
gomo-campaign-api/src/main/webapp/WEB-INF/hibernate.cfg.xml.xxx merge=ours
gomo-campaign-api/src/main/webapp/WEB-INF/legacy-session-mapping.properties.xxx merge=ours
gomo-campaign-api/src/main/webapp/WEB-INF/log4j.properties.xxx merge=ours
gomo-campaign-api/src/main/webapp/WEB-INF/messengerPublisher.properties.xxx merge=ours
我还有一个 sh 文件 运行,内容如下:
git update-index --assume-unchanged gomo-campaign-api/src/main/config/messengerPublisher.properties.xxx
ECHO ignoring log4j.properties.xxx
git update-index --assume-unchanged gomo-campaign-api/src/main/config/log4j.properties.xxx
ECHO ignoring legacy-session-mapping.properties.xxx
git update-index --assume-unchanged gomo-campaign-api/src/main/config/legacy-session-mapping.properties.xxx
ECHO ignoring hibernate.cfg.xml.xxx
git update-index --assume-unchanged gomo-campaign-api/src/main/config/hibernate.cfg.xml.xxx
ECHO ignoring gomo-messenger-config.xml.xxx
git update-index --assume-unchanged gomo-campaign-api/src/main/config/gomo-messenger-config.xml.xxx
ECHO ignoring database.properties.xxx
git update-index --assume-unchanged gomo-campaign-api/src/main/config/database.properties.xxx
ECHO Initialisation completed.
如果我进行自动合并,这些策略似乎都不起作用,即
git checkout staging
git merge development
如果这些文件中的任何一个发生了任何更改,它仍在尝试将更改移过去。
我是否遗漏了这些策略的配置?
只有我和另一个用户会执行开发 > 暂存或暂存 > 产品合并(甚至有权这样做) 其他用户必须创建拉取请求才能将他们的分支机构投入开发。所以我可以很容易地阻止其他用户对开发文件进行更改并引入本地配置。
但是,我确实需要合并以在合并时忽略这些文件。
如果我要结帐暂存并进行更改并将其推送到存储库,我想要该更改但不希望将其移至生产环境。
我希望我已经足够详细地解释了自己。
提前致谢。
我们考虑的解决方案之一是将它们保存在单独的存储库中,但我们采用的解决方案是在 maven 中使用配置文件标记并为存储库中的每个环境创建设置文件
不是最优雅的解决方案,但仍然是一个解决方案。