chef如何创建具有幂等性的git存储库?
我想创建一个git存储库,如果它还不存在,如果存在,那么像这样同步存储库 命令行:chef如何创建具有幂等性的git存储库?,git,chef-infra,Git,Chef Infra,我想创建一个git存储库,如果它还不存在,如果存在,那么像这样同步存储库 命令行: $ mkdir /var/git-repo/my_project.git $ cd /var/git-repo/my_project.git $ git --bare init --shared 主厨: git "/opt/my_project" do repository "/var/git-repo/my_project.git" action :sync end 如何通过chef保持git in
$ mkdir /var/git-repo/my_project.git
$ cd /var/git-repo/my_project.git
$ git --bare init --shared
主厨:
git "/opt/my_project" do
repository "/var/git-repo/my_project.git"
action :sync
end
如何通过chef保持git init命令的幂等性来编写git init命令
编辑
我发现git init
可以安全地从git文档执行到现有存储库
在现有存储库中运行git init是安全的。不会的
覆盖已经存在的内容。主要原因是
重新运行git init是为了获取新添加的模板(或移动
存储库转移到另一个位置(如果提供了--separate git dir)
所以,我决定每次运行<代码> Git init 每次都没有条件。
另一个要考虑的选项是部署资源,你应该把你的编辑移动到一个答案,并把它标记为被接受的答案。我想知道问题是什么。action:sync
的说明:“用于将源代码更新到指定版本,或获取新的克隆或签出。”-那么,为什么要使用git init
?因为裸回购?忽略幂等性是一个坏习惯。仅当块检查文件/opt/my_project/.git/config
是否存在时,才应添加块。它可以反复调用git init
,但这与chef只在真正需要时进行更改的想法相矛盾。