Für jedes Skript, das Sie ausführen sollen, ist es ratsam, alle Ihre Änderungen zu speichern oder festzuschreiben.
Ich musste mehrere Zweige von einer Fernbedienung zur anderen schieben. Diese Antworten erforderten, dass die lokalen Niederlassungen zuvor 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 Quellfernbedienung und origin2 in die Zielfernbedienung. Kopieren Sie dies in "remoteBranchCloner.sh" und rufen Sie es mit "sh callBranchCloner.sh" auf.
Es kann einen besseren Weg geben, der nicht mehrere Stöße ausführt.
Wenn Sie meinen Code verwenden, möchten Sie wahrscheinlich das Caching von Anmeldeinformationen verwenden, andernfalls müssen Sie Ihre Anmeldeinformationen mehrere Male eingeben.
Für Fenster :
Hinweis: Dieses Skript ist für Linux . Wenn Sie es in "git bash" ausführen, funktioniert das Skript, aber Sie können es nicht über die native Konsole 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, optional --global hinzuzufügen
Wenn Sie die Fernverfolgung für alle Zweige 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 so eingestellt, dass sie den Remote-Remotenamen verfolgen.