Maison > Questions et réponses > le corps du texte
[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
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.
世界只因有你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
大家讲道理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