cari

Rumah  >  Soal Jawab  >  teks badan

终端下如何配置 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 同时把代码提交到两个仓库,该怎么做?

迷茫迷茫2769 hari yang lalu665

membalas semua(3)saya akan balas

  • 巴扎黑

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

    Saya telah menggunakan dua kaedah yang pertama ialah menetapkan berbilang alat kawalan jauh dan kemudian menulis alias, seperti:

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

    Kemudian, selepas versi tertentu (terlupa nombor versi tertentu) dinaik taraf, Git menambah tetapan tambahan yang membolehkan anda menetapkan berbilang pushurl untuk alat kawalan jauh. Contohnya, dalam contoh dalam soalan anda, saya boleh meninggalkan remote "dev", tinggalkan remote "origin" sahaja, dan kemudian tambah:

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

    Selepas ini, remote "origin" anda akan kelihatan seperti ini:

    [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
    

    Dengan cara ini, saya boleh terus git push origin menolak dua repo.

    Kedua-dua kaedah ini sebenarnya mempunyai senario terpakainya sendiri, jadi anda boleh memilihnya sendiri.

    balas
    0
  • 世界只因有你

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

    Memandangkan terdapat risiko disekat oleh dinding, adalah pedih apabila kedua-dua gudang itu tidak selaras. Ia tidak terlalu menyusahkan..
    Jika anda benar-benar mahu melakukan ini, tulis sahaja fail shell.

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

    Dan jangan lupa untuk menjadikannya boleh laku: (dengan mengandaikan skrip dipanggil push.sh)

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

    balas
    0
  • 大家讲道理

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

    Jawapan: http://blog.codepiano.com/2013/07/03/push-multi-remote-repositories/

    Soalan yang sama dalam SegmentFault:
    /q/1010000000367632/a-1020000000369754
    /q/1010000000411859/a-1024100000

    balas
    0
  • Batalbalas