Przeglądając samouczek modułem , stworzyłem submodule z projektem boto . Potem odkryłem, że w rzeczywistości potrzebuję tylko części tego projektu - a konkretnie folderu boto .
Chciałbym zmienić mój moduł podrzędny, aby wskazywał ten folder. Kiedy patrzę w .gitmodules, widzę
[submodule "backup/src/boto"]
path = backup/src/boto
url = https://github.com/boto/boto.git
Jakiego adresu URL powinienem użyć zamiast https://github.com/boto/boto.git ? Czy po zmianie adresu URL powinienem lokalnie usunąć folder boto i ponownie go pobrać?
git
git-submodules
zrywak234
źródło
źródło
git subtree
Odpowiedzi:
Obawiam się, że adres URL podmodułów zawsze wskazuje tylko na repozytorium - nie możesz określić, że chcesz mieć tylko podfolder repozytorium, w ten sam sposób, w jaki git nie obsługuje ogólnie „wąskich klonów”.
Jeśli nie możesz żyć, mając całe repozytorium jako moduł podrzędny, zawsze możesz utworzyć nowe repozytorium sklonowane z boto, a następnie skonfigurować zadanie cron, aby:
git fetch
repozytorium do katalogugit filter-branch
do aktualizowania gałęzi, w której podkatalog znajduje się na najwyższym poziomie.źródło
Nie możesz sklonować tylko części repozytorium. Dzieje się tak, ponieważ git traktuje repozytorium jako cały obiekt: kiedy je zdobędziesz, otrzymasz wszystko .
Tak więc rozwiązaniem tutaj byłoby pobranie modułu podrzędnego do innego katalogu, a następnie użycie łącza symbolicznego, aby osiągnąć swój cel.
źródło
ln -s
jak w Linuksie)To, co chcesz zrobić, to utworzyć gałąź w module podrzędnym i przenieść folder w górę oraz usunąć to, czego nie potrzebujesz. Zamiast tego możesz zarządzać tą gałęzią. Jeśli chcesz przyspieszyć zmiany, najpierw powinieneś być w stanie przywrócić scalanie. Git będzie wiedział, że przeniosłeś pliki i pomyślnie scalisz.
Mam nadzieję że to pomoże.
źródło