Verwalten Sie mehrere Git-Repositorys von Magit

14

Ich verwalte mehrere Git-Repositorys mit Magit und ihre Anzahl wächst ständig. Gibt es eine Möglichkeit, magit über all diese Projekte zu informieren, sodass ein einziger Befehl eine Zusammenfassung des jeweiligen Status anzeigt, anstatt jeden einzelnen manuell auszuführen magit-status?

wilk
quelle
Thomas Frössman erwähnte, dass er so etwas implementiert hat: magit-multi-status.el
npostavs

Antworten:

17

Gibt es eine Möglichkeit, magit über die Liste all dieser Projekte zu informieren?

Ja, sehen magit-repository-directoriesund magit-repository-directories-depth.

... damit ein einzelner Befehl eine Zusammenfassung des jeweiligen Status anzeigt

Zu der Zeit, als diese Frage gestellt wurde, gab es einen solchen Befehl noch nicht, aber jetzt schon. Probieren M-x magit-list-repositoriesSie die Dokumentation aus : ( https://magit.vc/manual/magit/Repository-List.html ).


Sie können auch alle Submodule eines Super-Repositorys auf ähnliche Weise mit auflisten M-x magit-list-submodules. Oder Sie können einige dieser Informationen direkt im Statuspuffer anzeigen, indem Sie Folgendes verwenden:

(magit-add-section-hook 'magit-status-sections-hook
                        'magit-insert-modules
                        'magit-insert-unpulled-from-pushremote)

Dann werden alle Module in einem separaten Abschnitt aufgelistet. Module mit Änderungen werden wie gewohnt in Staged Changes und Unstaged Changes aufgelistet . RETIn einem dieser Module wird der Statuspuffer für dieses Repository angezeigt, und qSie gelangen zurück zum Statuspuffer des Super-Repository.

Submodule können mit geholt werden f m.

Tarsius
quelle
Danke, die Submodule scheinen der richtige Weg zu sein. Sollte ich meine verschiedenen Git-Repos in diesem neuen Superprojekt klonen (und einige langwierige Konfigurationen für jedes einzelne durchführen) oder kann ich einfach die Verzeichnisse in ein gemeinsames verschieben und dann jedes als Submodul deklarieren?
Mittwoch,
Sie könnten mvdie Repositorys, aber dann müssten Sie noch git submodule add git://<module> <module>jedes einzelne von ihnen, aber das ist zumindest besser, als alle Remotes und Zweige neu einrichten zu müssen.
Tarsius
Es scheint, dass <kbd> f m <kbd> anstelle von <kbd> F m <kbd> Submodule fech ist.
Wilk
2

Nachdem ich das gleiche Bedürfnis hatte, mehrere Git-Repositorys gleichzeitig zu verwalten, habe ich versucht, eine Lösung zu finden: https://github.com/luismbo/multi-magit .

Luís Oliveira
quelle