recherche

Maison  >  Questions et réponses  >  le corps du texte

终端下如何配置 git 使其可以同时 push 到两个远程仓库?

[remote "origin"]
        url = git@github.com:SegmentFault/XXX.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[remote "dev"]
        url = git@gitlab.com:root/XXX.git
        fetch = +refs/heads/*:refs/remotes/dev/*

config 中配置了两个远程仓库。我想终端下一句 git push 同时把代码提交到两个仓库,该怎么做?

迷茫迷茫2773 Il y a quelques jours668

répondre à tous(3)je répondrai

  • 巴扎黑

    巴扎黑2017-04-27 09:05:02

    J'ai utilisé deux méthodes. La première consistait à définir plusieurs télécommandes, puis à écrire un alias, tel que :

    $ git config alias.pushall "!git push origin && git push dev"
    

    Plus tard, après la mise à niveau d'une certaine version (oubli du numéro de version spécifique), Git a ajouté un paramètre supplémentaire qui vous permet de définir plusieurs pushurls pour une télécommande. Par exemple, dans l'exemple de votre question, je peux laisser de côté remote "dev", ne laisser que remote "origin", puis ajouter :

    git remote --set-url --add --push origin git@gitlab.com:root/XXX.git
    

    Après cela, votre remote "origin" ressemblera à ceci :

    [remote "origin"]
            url = git@github.com:SegmentFault/XXX.git
            fetch = +refs/heads/*:refs/remotes/origin/*
            pushurl = git@github.com:SegmentFault/XXX.git
            pushurl = git@gitlab.com:root/XXX.git
    

    De cette façon, je peux directement git push origin pousser deux dépôts.

    Ces deux méthodes ont en fait leurs propres scénarios applicables, vous pouvez donc en choisir un vous-même.

    répondre
    0
  • 世界只因有你

    世界只因有你2017-04-27 09:05:02

    Comme il y a un risque d'être bloqué par un mur, c'est embêtant que les deux entrepôts soient désynchronisés. Ce n'est pas trop compliqué..
    Si vous voulez vraiment faire cela, écrivez simplement un fichier shell.

    #!/bin/bash
    git push origin master
    git push dev master
    #以上,根据你自己的要求调整一下.
    

    Et n'oubliez pas de le rendre exécutable : (en supposant que le script s'appelle push.sh)

    JerryMac:Dev Jerry$ chmod +x ./push.sh
    JerryMac:Dev Jerry$ ./push.sh
    

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-27 09:05:02

    Réponse : http://blog.codepiano.com/2013/07/03/push-multi-remote-repositories/

    Les mêmes questions dans SegmentFault :
    /q/1010000000367632/a-1020000000369754
    /q/1010000000411859/a-1020000000411882

    répondre
    0
  • Annulerrépondre