od wersji 1.9.3 git (Apple Git-50) na Macu, jak usunąć moduł podrzędny git? Czytam wiele nieaktualnych informacji, a wielu programistów mówi mi, że nie będą działać. Jaki jest obecny sposób? będzie git deinit pathToSubModule
rade?
Kroki, które według mnie zadziałają, są tutaj, ale komentarze mówią, że nie.
Pozwólcie, że wyjaśnię moją obecną sytuację i to, co muszę osiągnąć. Zainstalowałem repozytorium Quick i dodałem je jako podmoduł do mojego projektu. Ten kod jest już zarejestrowany i inni go używają. To, co teraz muszę zrobić, to rozwidlić to samo repozytorium Quick i umieścić je na bezpieczniejszym githubie, który ma moja firma (czyli zupełnie inny prywatny github). Po rozwidleniu chcę dodać ten fork jako gitSubmodule i pozwolić mu zastąpić obecny moduł Quick, który zainstalowałem wcześniej.
aktualizacja: przeczytałem, że poniższy sposób jest prawidłowy w najnowszej wersji git, proszę potwierdzić?
To remove a submodule added using:
git submodule add [email protected]:repos/blah.git lib/blah
Run:
git rm lib/blah
That's it.
For old versions of git (circa ~1.8.5) use:
git submodule deinit lib/blah
git rm lib/blah
git config -f .gitmodules --remove-section submodule.lib/blah
źródło
Odpowiedzi:
Masz
git submodule deinit
deinit
źródło
rm -rf <asubmodule>
jeśli już sprawdziłeś wersję repozytorium podstawowego, które wyrejestrowało moduł podrzędny.Używam Git w wersji 2.16.2 i
git rm
przeważnie dobrze sobie radzę :Możesz sprawdzić za pomocą
git status
i,git diff --cached
że spowoduje to deinicjalizację modułu podrzędnego i.gitmodules
automatyczną modyfikację . Jak zawsze, musisz zatwierdzić zmianę.Jednak nawet jeśli moduł podrzędny został usunięty z kontroli źródła,
.git/modules/path-to-submodule
nadal zawiera repozytorium modułu podrzędnego i.git/config
zawiera jego adres URL, więc nadal musisz usunąć je ręcznie:Zachowanie repozytorium i konfiguracji podmodułów jest celowe, aby można było cofnąć usunięcie za pomocą np
git reset --hard
.źródło
Jak bezpiecznie usunąć podmoduł.
(dodaje do https://stackoverflow.com/a/1260982/342794 )
Wyświetl i zlokalizuj sekcję modułu podrzędnego w
.gitmodules
pliku. Powiedz przez terminalvi .gitmodules
. Przykład:Podmoduły mogą być używane z lokalnymi widełkami. W przypadku długotrwałych projektów kod może różnić się od oryginalnego repozytorium i może zawierać pewne poprawki. Warto sprawdzić, czy kod modułu podrzędnego przeszedł zmiany w trakcie projektu. Przykład: spójrz na dzienniki, jeśli wskazują na
master
oddział lub oddział lokalny. przeglądanie dzienników git w celu znalezienia modyfikacji wprowadzonych za pośrednictwem terminala. zazwyczaj są one przechowywane w katalogu, na przykład wsubmodules
katalogu.Usuń sekcję submodułu z .gitmodules, zapisz plik. Przykład:
git status
powinien wyświetlać tylko następujące po zmodyfikowaniuUstaw zmiany za pomocą
git add .gitmodules
.Wyświetl i zlokalizuj sekcję modułu podrzędnego w
.git/config
plikach. Powiedz przez terminalvi .git/config
. Przykład:Usuń pliki sobmodule cache git. uruchomienie
git rm --cached submodules/afnetworking
(bez końcowego ukośnika) usunie go pomyślnie. Przykład:Usuń pliki podmodułów w
.git
katalogu za pomocąrm -rf .git/modules/...
. Potwierdź togit status
później.Zatwierdź zmiany.
git status
Następnie potwierdź za pomocą .Usuń nieśledzone pliki modułów podrzędnych.
Usuń odniesienia z projektu Xcode. Twórz, naprawiaj problemy z kompilacją i uruchomieniem.
źródło