克隆Git存储库

时间:2019-01-15 14:33:39

标签: git ansible bitbucket

我写了一个有趣的剧本,它创建了一个新的BitBucket存储库。 现在,我要根据BitBucket中存储库源下面显示的说明配置存储库:

  

您有一个空的存储库要开始,您需要运行这些   终端中的命令。刚接触Git?学习基本的Git命令   使用存储库我的代码已经准备好推送   已经准备好将代码推送到此存储库,然后运行此代码   在您的终端中。

cd existing-project
git init
git add --all
git commit -m "Initial Commit"
git remote add origin http://xxxxxxx/scm/project/my-repo.git
git push -u origin master
My code is already tracked by Git
If your code is already tracked by Git then set this repository as your "origin" to push to.**

All done with the commands?
Refresh

我可以使用Git模块吗?或者如何在ansible中运行这些命令? 我只设法用Git模块克隆了仓库。

谢谢

2 个答案:

答案 0 :(得分:2)

如@Dan Farrell Ansible Git的答案中所述,似乎不允许推送。

作为初始方法,您可以尝试类似的操作:

- name: Git push.
  tasks:
    - name: Set git origin
      shell: "git remote set-url origin https://gitUserName:gitPassword@yourHost.com/storage/repo.git"

    - name: Push to origin.
      shell: "git push origin yourBranch" 

答案 1 :(得分:1)

https://docs.ansible.com/ansible/latest/modules/git_module.html似乎支持拉取,但是我看不到使用该模块的任何方法。

如果我没记错的话,用于ansible的git模块只包装了git可执行文件,因此将自己的shellcommand任务编写为相对容易执行所需的git命令。

您可能希望将copy模块和content设置一起使用来创建一个新文件(git不允许“空”提交,因为它仅跟踪更改,因此如果没有,则不能提交更改),然后在文件更改时有条件地运行git addgit commit步骤。

以我的经验,创建git repos并使用Ansible管理其内容并不是一种常见的做法。我想知道它的实用性(假设您想将ansible本身检查到一个存储库中以跟踪对ansible的更改,因此无论如何您最终还是要执行手动git操作。)但是肯定可以。