¿Capaz de presionar a todos los controles remotos de git con un solo comando?
En lugar de hacer:
git push origin --all && git push nodester --all && git push duostack --all
¿Hay alguna manera de hacerlo con un solo comando?
Gracias :)
Aceptado
Cree un all
control remoto con varias URL de repositorio a su nombre:
git remote add all origin-host:path/proj.git
git remote set-url --add all nodester-host:path/proj.git
git remote set-url --add all duostack-host:path/proj.git
Entonces solo git push all --all
.
Así se ve en .git/config
:
[remote "all"]
url = origin-host:path/proj.git
url = nodester-host:path/proj.git
url = duostack-host:path/proj.git
Para enviar todas las ramas a todos los controles remotos:
git remote | xargs -L1 git push --all
O si desea enviar la rama actual a todos los controles remotos:
git remote | xargs -L1 -I R git push R
(Bonificación) Para crear un alias de git para el comando:
git config --global alias.pushall '!git remote | xargs -L1 git push --all'
La ejecución git pushall
ahora enviará todas las ramas a todos los controles remotos.
Si desea enviar siempre a repo1, repo2 y repo3 pero siempre extraer solo desde repo1, configure el 'origen' remoto como
[remote "origin"]
url = https://[email protected]/path/to/repo1
pushurl = https://[email protected]/path/to/repo1
pushurl = https://[email protected]/path/to/repo2
pushurl = https://[email protected]/path/to/repo3
fetch = +refs/heads/*:refs/remotes/origin/*
Configurar en la línea de comando:
$ git remote add origin https://[email protected]/path/to/repo1
$ git remote set-url --push --add origin https://[email protected]/path/to/repo1
$ git remote set-url --push --add origin https://[email protected]/path/to/repo2
$ git remote set-url --push --add origin https://[email protected]/path/to/repo3
Si solo desea extraer repo1
pero empujar hacia repo1
y repo2
para una rama específicaspecialBranch
:
[remote "origin"]
url = ssh://[email protected]:7999/yyy/repo1.git
fetch = +refs/heads/*:refs/remotes/origin/*
...
[remote "specialRemote"]
url = ssh://[email protected]:7999/yyy/repo1.git
pushurl = ssh://[email protected]:7999/yyy/repo1.git
pushurl = ssh://[email protected]:7999/yyy/repo2.git
fetch = +refs/heads/*:refs/remotes/origin/*
...
[branch "specialBranch"]
remote = origin
pushRemote = specialRemote
...
Consulte https://git-scm.com/docs/git-config#git-config-branchltnamegtremote .