git同时推送到多个存储库

这个问题在这里已经有了答案:

  • 从多个远程位置拉/推14个答案

  • 我不认为你可以通过在git上设置一个标志来做到这一点,但你可以修改一个配置文件,它允许你推送到多个远程存储库,而无需手动输入全部内容(只在第一次输入它们,之后)

    .git/config文件中,您可以将多个URL添加到定义的远程:

    [remote "all"]
        url=ssh://user@server/repos/g0.git
        url=ssh://user@server/repos/g1.git
    

    如果你现在git push all你推动所有的远程网址。


    没有手动编辑

    您可以通过使用git config --add remote.xyz.url和不同的URL,直接从命令行向远程分支(例如all )添加多个URL:

    git config --add remote.all.url ssh://user@server/repos/g0.git
    git config --add remote.all.url ssh://user@server/repos/g1.git
    

    全自动

    如果你超级懒惰,并且不忍心多次复制/贴上网址,这是给你的:

    function git-add-push-all() {
      while read -r name url method; do
        git config --add remote.all.url "$url"
      done < <(git remote -v | awk '!/^all/ && /push/')
    }
    
    git-add-push-all # from git (sub)directory
    

    一个完整的bashy脚本是可能的(test $name$method ),但awk很可爱,每个人都有爱。

    然后你可以推送到所有的远程

    git push all
    

    参考

  • git-config(1)手册页

  • 您也可以从配置的遥控器获取网址:

    for repo in g0 g1 ...
    do
        git config --add remote.all.url `git config remote.$repo.url`
    done
    

    其中g0,g1,...是您遥控器的名称。

    链接地址: http://www.djcxy.com/p/49765.html

    上一篇: git push to multiple repositories simultaneously

    下一篇: Syntax for Git aliases with multiple commands