Für jedes Skript, das ich Ihnen vorschlage, wäre es ratsam, alle Änderungen zu speichern oder zu übertragen.
Ich musste mehrere Zweige von einem entfernten Standort zu einem anderen verschieben. Diese Antworten setzten voraus, dass die lokalen Zweige bereits existierten
SRC_R=origin1
DEST_R=origin2
for cbranch in $(git branch -r | grep $SRC_R | cut -d '/' -f2,3,4,5 | cut -d ' ' -f1)
do
git checkout $cbranch
git push $DEST_R $cbranch
done
Ändern Sie einfach origin1 in die Quell-Fernleitung und origin2 in die Ziel-Fernleitung. Kopieren Sie dies in "remoteBranchCloner.sh" und rufen Sie es mit "sh callBranchCloner.sh" auf.
Möglicherweise gibt es eine besser Weise, das tut nicht mehrere Schübe.
Wenn Sie meinen Code verwenden, sollten Sie wahrscheinlich Zwischenspeicherung von Anmeldeinformationen, sonst müssen Sie Ihre Anmeldedaten mehrmals eingeben.
Für Windows :
Anmerkung: Dieses Skript ist für Linux . Wenn Sie es in "git bash" ausführen funktioniert das Skript, aber Sie können es nicht von der nativen Konsole aus ausführen, ohne etwas Besonderes installiert zu haben.
git config [--global] credential.helper wincred
Für linux
git config [--global] credential.helper cache
Wobei [--global] bedeutet, dass optional --global hinzugefügt wird
Wenn Sie die Fernverfolgung für alle Zweigstellen auf eine neue Fernbedienung einstellen möchten:
DEST_R=remotename
for cbranch in `git branch`
do
git checkout $cbranch
git branch -u guru/$cbranch
done
Als .sh-Datei gespeichert und mit "sh filename.sh" ausgeführt, werden alle Upstreams auf den entfernten 'remotename' eingestellt.