脚本,自动将与git帐户关联的所有回购协议克隆到本地

脚本,自动将与git帐户关联的所有回购协议克隆到本地,git,bash,github,c#-3.0,git-bash,Git,Bash,Github,C# 3.0,Git Bash,我正在编写一个脚本,自动获取git hub url的所有存储库,然后将它们克隆到本地,如果克隆已经存在,那么我们必须更新最新的更改 我一直在调查 Git bash,但我无法找到一种方法来获取所有回购协议和url,以克隆与该帐户关联的它们 我已经查看了octokit for c#,但我不确定这是否适合此任务 Git bash,但我无法找到一种方法来获取所有回购协议和url,以克隆与该帐户关联的它们 这是一个简单的卷曲,使用。例如,见 您需要调整脚本以便: 测试给定回购的本地文件夹是否存在 如果文

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

我一直在调查

  • Git bash,但我无法找到一种方法来获取所有回购协议和url,以克隆与该帐户关联的它们

  • 我已经查看了octokit for c#,但我不确定这是否适合此任务

  • Git bash,但我无法找到一种方法来获取所有回购协议和url,以克隆与该帐户关联的它们

    这是一个简单的卷曲,使用。例如,见

    您需要调整脚本以便:

    • 测试给定回购的本地文件夹是否存在
    • 如果文件夹存在,请将
      cd
      放入其中并执行
      git pull
      (或至少执行
      git fetch
    如果您有大量或GitHub存储库,则可能需要考虑

    请参阅。

    API调用中返回的回购数量是否有限制?IIRC分页是必需的。@Thorbjørnravandersen我相信你可以达到每页100页。因此,我在回答中提到的第二个要点是:对不起,遗漏了这一部分。非常感谢。Github认为“镜像所有回购”功能易于编写脚本。@ThorbjørnRavnAndersen我同意。这些天他们似乎发布了更多的功能。也许GitHub桌面将提供这一功能。
    #!/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