Rumah > Soal Jawab > teks badan
[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 同时把代码提交到两个仓库,该怎么做?
巴扎黑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.
世界只因有你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
大家讲道理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