Frage git push zu mehreren Repositories gleichzeitig [duplizieren]


Diese Frage hat hier bereits eine Antwort:

Wie kann ich machen git push nicht nur zu schieben origin aber auch ein anderes Remote-Repository?

wie git push ist nur ein Alias ​​für git push origin, kann ich Alias ​​git push auf 2 Remote-Repositories gleichzeitig pushen (mit nur einem Befehl)?

Ich bin nicht auf der Suche nach einem Nicht-Git-Skript hier, aber ich möchte dies für meine lokale Repository in Git einrichten.

Als ich es mit Post-Push-Skripten versuchte, scheiterte ich.


76
2017-11-23 12:10


Ursprung


Antworten:


Ich glaube nicht, dass Sie dies tun können, indem Sie einfach ein Flag auf git setzen, aber Sie können eine Konfigurationsdatei ändern, die es Ihnen erlaubt, zu mehreren Remote-Repositories zu gehen, ohne sie manuell einzugeben (und nur beim ersten Mal eingeben) nicht danach)

In dem .git/config Datei können Sie mehrere URLs zu einer definierten Fernbedienung hinzufügen:

[remote "all"]
    url=ssh://user@server/repos/g0.git
    url=ssh://user@server/repos/g1.git

Wenn du git push all Jetzt drücken Sie auf alle Remote-URLs.


119
2017-11-23 12:18



Keine manuelle Bearbeitung

Sie können einer entfernten Zweigstelle mehrere URLs hinzufügen (z. all) direkt von der Kommandozeile aus mit git config --add remote.xyz.url mit verschiedenen URLs:

git config --add remote.all.url ssh://user@server/repos/g0.git
git config --add remote.all.url ssh://user@server/repos/g1.git

Komplett automatisch

Wenn du bist super faul und ertragen Sie nicht zu kopieren / paster URL mehrmals, das ist für Sie:

function git-add-push-all() {
  while read -r name url method; do
    git config --add remote.all.url "$url"
  done < <(git remote -v | awk '!/^all/ && /push/')
}

git-add-push-all # from git (sub)directory

Ein vollständiges Bashyscript ist möglich (Test $name und $method), aber awk ist süß und es gibt Liebe für alle.

drücken

Dann kannst du mit allen auf die Fernbedienung drücken

git push all

Verweise


51
2017-09-05 13:24



Sie können URL auch von konfigurierten Fernbedienungen erhalten:

for repo in g0 g1 ...
do
    git config --add remote.all.url `git config remote.$repo.url`
done

wo g0, g1, ... sind die Namen Ihrer Fernbedienungen.


0
2018-03-03 15:15