Git Push Zweig von einer Fernbedienung zur anderen?
Habe ich folgende Fernbedienungen:
$ git remote
korg
rorg
Und die folgenden Zweige:
$ git branch -a
* (no branch)
remotes/korg/gingerbread
remotes/korg/gingerbread-release
remotes/korg/honeycomb
remotes/korg/honeycomb-mr1-release
remotes/korg/master
remotes/m/android-2.3.3_r1 -> refs/tags/android-2.3.3_r1a
remotes/m/gingerbread -> korg/gingerbread
Nun möchte ich Schiebe alle remote-branches aus korg
zu den rorg
Fernbedienung. Wie mache ich das?
Vorzugsweise ohne eine lokale Niederlassung für jeden ersten, wenn das vermeidbar ist.
InformationsquelleAutor der Frage Bjarke Freund-Hansen | 2011-10-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen schnellen test machen einige temporäre repositories zeigt, können Sie konstruieren eine refspec, die dies tun können:
Also Herkunft/BRANCHNAME:refs/heads/BRANCHNAME
Prüfung in meinem
rorg
remote:InformationsquelleAutor der Antwort patthoyts
Habe ich dies gefunden:
Und schob es, alle meine remote-Zweigstellen von korg zu rorg (auch ohne lokale Kopien der Filialen). Finden Sie in der folgenden Ausgabe:
Dann können Sie die gleichen push für
tags
refs:InformationsquelleAutor der Antwort radistao
Ergänzen patthoyt Antworthier ist ein kurzes shell-Skript, das schiebt alle Zweige von einer Fernbedienung zur anderen:
Zusammenzufassen, für jede remote-branch auf der Quell-Fernbedienung (ohne "Zeiger" Branchen, wie der KOPF), drücken Sie die Referenz auf das remote-Ziel. (Die
${a//$SRC_REMOTE\/}
bit-strips der Quelle remote-Namen aus der Branche-name, D. H.,origin/master
wirdmaster
.)InformationsquelleAutor der Antwort blahdiblah
Dies funktioniert auch in der Zsh
InformationsquelleAutor der Antwort Dongfang Zhu
Für jedes script, das ich sugges Sie laufen, wäre es klug, zu verstauen oder Begehen alle Ihre änderungen.
Musste ich schieben mehrere äste von einer Fernbedienung zur anderen. Diese Antworten erforderlich, dass die lokalen Niederlassungen, die zuvor existierte
Nur ändern origin1 der Quelle entfernten, und origin2 auf den Ziel-remote.
Kopieren Sie diese in "remoteBranchCloner.sh" und rufen Sie es mit "sh callBranchCloner.sh".
Kann es ein besserdie nicht tun, mehrere drückt.
Ob Sie mit meinem code, die Sie wahrscheinlich verwenden wollen Zwischenspeicherung, anders zu können, geben Sie Ihre Anmeldeinformationen mehrere Male.
Für windows:
Hinweis: Dieses script ist für linux. Wenn Sie führen Sie es in der "git bash" das Skript funktioniert, aber Sie können nicht führen Sie es von der heimischen Konsole ohne Installation etwas besonderes.
Für linux
Wo [--global] bedeutet Optional hinzufügen --Globale
Wenn Sie möchten, legen Sie remote-tracking für alle Filialen an eine neue remote:
Abgelegt .sh-Datei und rannte dann mit "sh filename.sh" alle upstreams zu verfolgen remote 'remotename'
InformationsquelleAutor der Antwort csga5000