Uma*_*van 4 java eclipse git git-fork
我需要为不同的环境(如 dev、uat 和生产)进行属性配置。例如,一个 config.properties 具有和条目之类的environment=dev,我需要更改为 staging 分支 asenvironment=uat和 master 分支 as environment=prd。
我尝试分别在每个分支中提交这些文件,并尝试在 gitignore 中添加 config.properties 以便它不会在下次提交时考虑。但是 git ignore 没有更新所以我运行了命令
git rm -rf --cached src/config.properties
git add src/config.properties
git commit -m ".gitignore fix"
Run Code Online (Sandbox Code Playgroud)
但是此命令正在从本地存储库本身删除文件,并且正在进行的提交也从分支中删除。我想像这样处理分支,以便 Jenkins 无需手动编辑配置文件即可进行部署。我正在为 git UI 使用 fork。有没有办法处理这种情况?
你不应该对 a config.properties(git rm是对的)版本,并确实忽略它。
这样,它在合并期间不会造成任何问题。
拥有三个单独的文件更容易,每个环境一个:
config.properties.devconfig.properties.uatconfig.properties.prd在每个分支中,您将根据当前的执行环境,从这些文件之一生成 config.properties具有正确值的 。
由于每个环境都有单独的分支,其中包含正确的文件,因此您可以使用生成脚本来确定签出分支的名称:
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
Run Code Online (Sandbox Code Playgroud)
这意味着你可以:
config.properties.<env> config.properties.dev, config.properties.uat...: 因为它们不同,所以在合并或切换分支时没有合并问题。最后,您将注册(在.gitattributes声明中)一个内容过滤器驱动程序。
(图片来自“ Customizing Git - Git Attributes ”,来自“ Pro Git book ”)
smudge与模板文件 ( package.json.tpl)相关联的脚本将通过在正确的值文件中查找值来生成(自动,在 上git checkout)实际文件。
生成的实际文件仍然被忽略(被)。 config.propertiesconfig.properties.<env>config.properties.gitignore
请参阅“分支之间的 git smudge/clean filter ”中的完整示例。
| 归档时间: |
|
| 查看次数: |
1692 次 |
| 最近记录: |