Jaki jest aktualny sposób na usunięcie podmodułu git?
Od wersji git 1.9.3 (Apple Git-50) na mac jak usunąć podmodule git? Czytam wiele nieaktualnych informacji, a wielu programistów mówi mi, że nie będą działać. Jaki jest obecny sposób ? czy uda Ci się ?
Kroki, które myślałem, że zadziałają są tutaj ale komentarze mówią, że nie będą.
Pozwól, że wyjaśnię moją obecną sytuację i to, czego potrzebuję. Zainstalowałem szybkie repozytorium i dodałem je do podmodułu do mojego projektu. Ten kod jest już sprawdzony i inni go używają. To, co teraz muszę zrobić, to fork to samo szybkie repozytorium i hostowanie go na bardziej bezpiecznym GitHubie, który ma Moja Firma (więc zupełnie inny prywatny github). Po rozwidleniu chcę dodać ten fork jako gitSubmodule i pozwolić mu zastąpić bieżący szybki podmodule, który wcześniej zainstalowałem.Update: przeczytałem, że poniższy sposób jest poprawny 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
3 answers
MASZ git submodule deinit
git submodule deinit <asubmodule>
git rm <asubmodule>
# Note: asubmodule (no trailing slash)
# or, if you want to leave it in your working tree
git rm --cached <asubmodule>
rm -rf .git/modules/<asubmodule>
deinit
Un-register the given submodules, czyli Usuń Cały
[[10]}kolejne połączenia dosubmodule.$name
sekcja z.git/config
wraz z ich drzewem roboczym.git submodule update
,git submodule foreach
igit submodule sync
pominie wszelkie niezarejestrowane podmodule, dopóki nie zostaną ponownie zainicjowane, więc użyj tego polecenia, jeśli nie chcesz mieć już lokalnej kasy podmodułu w swoim drzewie pracy.Jeśli naprawdę chcesz usunąć podmodule z repozytorium i zatwierdzić, użyj
git rm
.Jeśli podano
--force
, drzewo pracy podmodułu zostanie usunięte, nawet jeśli zawiera lokalne modyfikacje.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-10 09:18:03
Jak bezpiecznie usunąć podmoduł.
(dodaje do https://stackoverflow.com/a/1260982/342794 )
-
Wypisz i zlokalizuj sekcję podmodułu w pliku
.gitmodules
. Powiedz przez terminalvi .gitmodules
. Przykład:[submodule "submodules/afnetworking"] path = submodules/afnetworking url = https://github.com/CompanyName/afnetworking.git
-
Podmoduły mogą być używane z lokalnymi widłami. W przypadku długotrwałych projektów kod może różnić się od oryginalnego repo i może zawierać pewne poprawki. Dobrym pomysłem jest sprawdzenie, czy kod podmodułu przeszedł zmiany w trakcie projektu. Przykład: spójrz na dzienniki, jeśli wskazują na
master
gałąź lub jakąś lokalną gałąź. przeglądanie dzienników Gita w celu znalezienia modyfikacji, które zostały wykonane za pomocą terminala. zazwyczaj są one przechowywane w katalogu, w moim przykładzie, w katalogusubmodules
.User$ cd submodules/afnetworking User$ git log
-
Usuń sekcję podmodułu z .gitmodules, zapisz plik. Przykład:
git status
powinien pokazywać tylko następujące, jako zmodyfikowanemodified: .gitmodules
Etap zmian za pomocą
git add .gitmodules
.-
Wymień i zlokalizuj sekcja podmodułu w plikach
.git/config
. Powiedz przez terminalvi .git/config
. Przykład:[submodule "submodules/afnetworking"] url = https://github.com/CompanyName/afnetworking.git
-
Usuń pliki git Cache sobmodule. uruchomienie
git rm --cached submodules/afnetworking
(BEZ ukośnika końcowego)spowoduje jego usunięcie. Przykład:User$ git rm --cached submodules/afnetworking rm 'submodules/afnetworking' <-- terminal output
-
Usuń pliki podmodułu w katalogu
.git
za pomocąrm -rf .git/modules/...
. Następnie potwierdź to za pomocągit status
.User$ rm -rf .git/modules/submodules/afnetworking/ User$ git status On branch feature/replace-afnetworking-submodule-with-pod Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: .gitmodules deleted: submodules/afnetworking Untracked files: (use "git add <file>..." to include in what will be committed) submodules/afnetworking/
-
Zatwierdź zmiany. Następnie potwierdź za pomocą
git status
.User$ git commit -m "Remove submodule afnetworking" [feature/replace-afnetworking-submodule-with-pod 70e239222] Remove submodule afnetworking 2 files changed, 4 deletions(-) delete mode 160000 submodules/afnetworking User$ git status On branch feature/replace-afnetworking-submodule-with-pod Untracked files: (use "git add <file>..." to include in what will be committed) submodules/afnetworking/ nothing added to commit but untracked files present (use "git add" to track)
-
Usuń Nie śledzony podmoduł pliki.
User$ rm -rf submodules/afnetworking
Usuń odniesienia z projektu Xcode. Buduj, naprawiaj problemy z kompilacją i uruchomieniem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-31 15:33:28
Używam Git w wersji 2.16.2 i git rm
wykonuje to zadanie głównie dobrze:
git rm path-to-submodule
Możesz sprawdzić za pomocą git status
i git diff --cached
, czy to deinicjalizuje podmoduł i automatycznie modyfikuje .gitmodules
. Jak zawsze, musisz zatwierdzić zmianę.
Pomimo tego, że podmoduł jest usuwany spod kontroli źródła, .git/modules/path-to-submodule
nadal zawiera repozytorium podmodułu, a .git/config
zawiera jego adres URL, więc nadal musisz je usunąć ręcznie:
git config --remove-section submodule.path-to-submodule
rm -rf .git/modules/path-to-submodule
Prowadzenie repozytorium submodule i konfiguracja jest zamierzona, dzięki czemu można cofnąć usunięcie za pomocą np. git reset --hard
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-14 20:35:28