Ruby on rails 如何处理rails加密凭证文件中的合并冲突
使用Rails6(或5.2)加密凭据,我在Ruby on rails 如何处理rails加密凭证文件中的合并冲突,ruby-on-rails,credentials,ruby-on-rails-6,Ruby On Rails,Credentials,Ruby On Rails 6,使用Rails6(或5.2)加密凭据,我在credentials.yml.enc文件中管理和解决合并冲突时遇到困难。正如文档中所概述的,其目的是可以将加密凭据添加到源代码管理() 例如。 branch\u a为服务a添加凭据并合并到master branch_b为服务b添加凭据,重新设置基址时,credentials.yml.enc文件中的冲突如下所示: <<<<<<< HEAD sahdkajshdkajhsdkjahsdkjahsdkajhsdkja
credentials.yml.enc
文件中管理和解决合并冲突时遇到困难。正如文档中所概述的,其目的是可以将加密凭据添加到源代码管理()
例如。
branch\u a
为服务a添加凭据并合并到master
branch_b
为服务b
添加凭据,重新设置基址时,credentials.yml.enc
文件中的冲突如下所示:
<<<<<<< HEAD
sahdkajshdkajhsdkjahsdkjahsdkajhsdkjahsdkjahdskjahsdjkahsdencryptedstring-a09dpjmcas==
=======
laskdjalksjdlakjsdlaksjdlakjsdlaksjdlakjsdlajsdlkajsdlkjasdljalsdajsdencryptedstringrere=
>>>>>>> branch_b
分支机构
我可以查看每个分支上未加密的
credentials.yml.enc
,并手动解决冲突,但是否有更好的方法来管理凭据以避免这些凭据冲突 通常建议忽略版本控制中的凭据,即.gitignore
,并通过环境变量进行配置 我不相信有更好的方法,没有
由于加密的性质,在加密状态下无法解析它。如果这是可能的,这意味着您可以以某种方式知道处于加密状态的文件的值和密钥
进行合并时,应解决源文件中的任何冲突,然后重新运行生成加密文件的命令,然后完成合并。这是可能的。从
rails凭证
用法:
=== Set up Git to Diff Credentials
Rails provides `rails credentials:diff --enroll` to instruct Git to call `rails credentials:diff`
when `git diff` is run on a credentials file.
Running the command enrolls the project such that all credentials files use the
"rails_credentials" diff driver in .gitattributes.
Additionally since Git requires the driver itself to be set up in a config file
that isn't tracked Rails automatically ensures it's configured when running
`credentials:edit`.
Otherwise each co-worker would have to run enable manually, including on each new
repo clone.
Rails 6中加密凭证的全部意义在于,它们可以处于版本控制中。谢谢你的回复。出于这个原因,我还决定对非生产凭证使用不同的系统。尚未实现,但我只打算使用凭证文件来管理生产,当然,只有团队的某些成员有权访问。这将消除冲突问题too@ekampp在提问时,他的回答是正确的。从那时起,添加了此功能。文档链接:和PR