chef如何创建具有幂等性的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

我想创建一个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 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只在真正需要时进行更改的想法相矛盾。