我使用Ansible进行配置管理,并使用以下任务克隆Git仓库:
# Example git checkout from Ansible Playbooks
- git: repo=git://foosball.example.org/path/to/repo.git
dest=/srv/checkout
version=release-0.22
这会克隆具有特定版本的仓库。
如果repo已经存在,它会在再次运行时执行git pull
吗?或者它只是一直克隆回购?如果repo已经存在,如何在Ansible中执行git pull
,如果repo存在,我们如何运行特定命令,如果第一次克隆repo,我们如何运行?
答案 0 :(得分:13)
Ansible是一种声明性工具,您可以在其中描述您希望服务器/环境的外观以及Ansible尝试实现这一目标。它也被设计为idempotent,这意味着重新运行你的游戏应该每次重现相同的最终结果,只要下面没有任何变化。
git module也归于此,只是尝试确保远程主机上有repo以及您可选择要求的版本(或分支/标记)。
因此,当您在新环境中运行问题中的git任务时,它会将repo克隆到目标文件夹。在未来的运行中,回购已经存在,所以它只是做了一个git pull。
如果您为update
属性指定了标记/分支/提交引用,那么它只会检查该版本并将其拉出来。
答案 1 :(得分:0)
这对我来说可以使用shell命令:
else if (power < 0)
{
for (int i = 0; i > power; i--)
{
result = result*(1/(float) base);
}
}
我必须使用用户名和密码来指定远程URL,因为它会以简单的“ git pull”挂起。