Czy istnieje prosty sposób na zmianę nazwy katalogu podmodułów git (inny niż przejście przez cały proces jego usunięcia i ponownego dodania z nową nazwą docelową).
A skoro już o tym mowa, dlaczego po prostu nie mogę wykonać następujących czynności w katalogu nadrzędnym: git mv old-submodule-name new-submodule-name
git
git-submodules
Lars Tackmann
źródło
źródło
.gitmodules
ręczne aktualizowanie podczas przenoszenia modułu podrzędnego. zobacz moją odpowiedź poniżejnpm
pokazuje, jak proste działa. Pewnego dnia ... może ... ktoś ... przepisuje to ... w międzyczasie ...Odpowiedzi:
Zauważyłem, że działa następujący przepływ pracy:
mv oldpath newpath
git rm oldpath
git add newpath
git submodule sync
Uwaga: to podejście nie aktualizuje poprawnie indeksu i .gitmodules w wersjach GIT z 2018 roku.
Uwaga: Możesz być w stanie teraz tylko zrobić
git mv oldpath newpath
teraz, jak wskazano w VonC „s odpowiedź . (Upewnij się, że używasz najnowszej wersji git)źródło
git add newpath
nie używaj końcowego ukośnika.git/modules/SUBMODULE/config
plik, tak aby ponownieworktree
wskazywał właściwy katalog.2.13.1
. Ale po prostu robieniegit mv old new
działa jak urok. Muszę tylko wykonać git commit, aby zakończyć zmiany.Git1.8.5 (październik 2013) powinien uprościć ten proces . Po prostu zrób:
Zobacz więcej w zatwierdzeniu 0656781fadca1 :
git 2.9 (czerwiec 2016) poprawi się
git mv
dla podmodułu:Zobacz commit a127331 (19 kwietnia 2016) autorstwa Stefana Bellera (
stefanbeller
) .(Scalone przez Junio C Hamano -
gitster
- w zatwierdzeniu 9cb50a3 , 29 kwietnia 2016 r.)źródło
fatal: source directory is empty, source=my_source, destination=my_destination
. Spróbuję ponownie, gdy 1.8.5 będzie mieć stabilną wersję.Prawidłowe rozwiązanie to:
Źródło: Zmień nazwę modułu podrzędnego git
źródło
Właśnie wypróbowałem kilka z sugerowanych powyżej. Biegnę:
Zauważyłem, że najlepiej jest wyrejestrować moduł podrzędny, usunąć katalog i utworzyć nowy moduł podrzędny.
Przynajmniej to działało dla mnie najlepiej. YMMV!
źródło
Nie można zmienić jego nazwy, więc najpierw musisz go usunąć (
deinit
) i dodać ponownie.Więc po usunięciu:
możesz również dwukrotnie sprawdzić i usunąć odniesienia do niego w:
.gitmodules
.git/config
.git/modules/<name>
(najlepiej wykonać kopię zapasową), ponieważ każdy folder zawieraconfig
plik, w którym zachowuje odniesienie do swojegoworktree
następnie przygotuj zmiany, dokonując wszelkich zmian w repozytorium poprzez:
i dokładnie sprawdź, czy nie masz żadnych nierozwiązanych problemów:
więc teraz możesz ponownie dodać podmoduł git:
źródło
Edytuj plik .gitmodules, aby zmienić nazwę modułu podrzędnego, a następnie zmień nazwę katalogu modułu podrzędnego.
Myślę, że będziesz musiał to zrobić
git submodule sync
później, ale nie jestem teraz w stanie tego sprawdzić.źródło
MacOs : Kiedy chcę użyć rozwiązania VonC, aby zmienić folder podmodułu
Common
na małe litery:dostaję
Rozwiązanie - użyj nazwy folderu tymczasowego i przesuń dwukrotnie:
To wszystko :)
źródło