2016-07-28 8 views
0

Gibt es eine Möglichkeit, eine Remote-URL für eine Menge (unterschiedlich lokalisierter) lokaler Git-Repositories effizient zu ändern?Wie ändere ich alle Remote-Adressen meiner Git-Repos?

Use Case 1
änderte ich meinen Benutzernamen auf Github.

Use Case 2
Ich änderte/will meine Fern git-Hosting-Server-URL ändern.

Caveats
- Die repos konsequent nicht den gleichen Namen für die Fernbedienung verwenden (so kann ich nicht nur Hammer durch wechselnde origin).

+0

Zum ** Vorbehalt **: Können Sie die entfernte URL, die Sie ändern möchten, zuverlässig identifizieren? In diesem Fall könnten Sie 'git remote -vv' verwenden, um den Namen der Fernbedienung zu erhalten. – AnimiVulpis

+1

Ja, ich könnte. Ich könnte sed/awk/grepping die 'git remote -v's der Welt durchgehen, um nach der URL zu suchen und' git remote set-url $ 1 $ thechange' auszuführen, aber ich würde es eher vermeiden, programmatisch durch meine globale Datenbank zu gehen Verzeichnisse und Remote-URLs anpassen, wenn ich helfen kann. – irbanana

+0

Es wäre eine sehr unixe Art, es zu tun (viele kleine Programme aneinander zu ketten) und ich sehe keinen anderen Weg, es zu tun. Wenn Sie diesen Ansatz nicht verwenden möchten, kann ich Ihnen nicht helfen. – AnimiVulpis

Antwort

0

Nun, nachdem ich keine anderen schlaueren Möglichkeiten, dies zu erreichen, gehört hatte, dachte ich, ich würde einen Versuch mit einem "unixy" lösen.

Suchen Sie nach einem übereinstimmenden Pfad in einem bestimmten übergeordneten Verzeichnis (oder Großelternteil ...), und führen Sie dann $2 für jeden gefundenen Pfad/Datei aus.

find_git_configs() { 
    find $1 -path "*/.git/config" -exec $2 {} \; 
} 

Dann in Aktion ...

find_git_configs some/where "sed -i.bak s/:3000//g".

Verwandte Themen