用于自动克隆与git帐户关联的本地所有存储库的脚本

时间:2016-10-02 11:11:03

标签: git bash github c#-3.0 git-bash

我正在编写一个脚本来自动完成获取git hub url的所有存储库的任务,然后将它们克隆到本地,如果克隆已经存在,那么我们必须更新最新的更改。

我一直在研究

  1. Git bash,但我无法找到如何获取所有repo的方法以及克隆与该帐户相关联的url。

  2. 我已经查看了octokit的c#,但我不确定这是否适用于此任务。

1 个答案:

答案 0 :(得分:1)

  

Git bash,但我无法找到如何获取所有回购邮件以及克隆与帐户关联的网址的方法。

这是一个简单的卷曲,使用GitHub API。例如,请参阅this gist

#!/bin/bash

# Set the user:
user="rd2b"

# Lists github repositories:
curl -s https://api.github.com/users/$user/repos | sed -n 's/.*clone_url.*"\(.*\)".*/\1/ p'

# Clone all repositories:
for i in `curl -s https://api.github.com/users/$user/repos | sed -n 's/.*clone_url.*"\(.*\)".*/\1/ p'`
do
  git clone "$i" "github-$(basename $i)"
done

您需要调整脚本以便:

  • 测试给定仓库的本地文件夹是否存在
  • 如果文件夹存在,cd进入该文件夹并执行git pull(或至少git fetch)。

如果您有号码或GitHub存储库,则可能需要考虑 pagination
请参阅this gist as an example