Jeśli zmodyfikuję podmoduł, czy mogę przesunąć zatwierdzenie z powrotem do źródła podmodułu, czy może to wymagać klonu? Jeśli klonuje, czy mogę przechowywać klon w innym repozytorium?
git
git-submodules
webjay
źródło
źródło
git config push.recurseSubmodules on-demand
. Wtedy wystarczy prostygit push
, aby wszystko popchnąć (główne repozytorium i podmoduły). Zobacz moją zredagowaną odpowiedź poniżej .Odpowiedzi:
Podmoduł to nic innego jak klon repozytorium git w innym repozytorium z dodatkowymi metadanymi (wpis drzewa gitlink, plik .gitmodules)
źródło
gh-pages
oddziałem w celu dokumentacji repozytorium na githubie :)Zauważ, że ponieważ git1.7.11 ( [ ANNOUNCE ] Git 1.7.11.rc1 i informacja o wydaniu , czerwiec 2012) wspomina:
Prawdopodobnie zrobione po tym patchu i
--on-demand
opcji:Możesz więc przesłać wszystko za jednym razem (z repozytorium nadrzędnego) a:
Ta opcja działa tylko dla jednego poziomu zagnieżdżenia. Zmiany w module podrzędnym w innym module podrzędnym nie będą wprowadzane.
Z git 2.7 (styczeń 2016), proste wypychanie git wystarczy, aby wypchnąć repozytorium nadrzędne ... i wszystkie jego moduły podrzędne.
Zobacz commit d34141c , commit f5c7cd9 (03 grudnia 2015), commit f5c7cd9 (03 grudnia 2015) i commit b33a15b (17 listopada 2015) autorstwa Mike Crowe (
mikecrowe
) .(Scalone przez Junio C Hamano -
gitster
- w zatwierdzeniu 5d35d72 , 21 grudnia 2015 r.)Dokument
git config
zawiera teraz :Więc:
Git 2.12 (I kwartał 2017)
git push --dry-run --recurse-submodules=on-demand
faktycznie zadziała.Zobacz zatwierdzenie 0301c82 , zatwierdzenie 1aa7365 (17 listopada 2016 r.) Autorstwa Brandona Williamsa (
mbrandonw
) .(Scalone przez Junio C Hamano -
gitster
- w zatwierdzeniu 12cf113 , 16 grudnia 2016 r.)I nadal w Git 2.12 masz teraz
--recurse-submodules=only
opcję " " wypychania podmodułów bez wypychania superprojektu najwyższego poziomu .Zobacz commit 225e8bf , commit 6c656c3 , commit 14c01bd (19 grudnia 2016) autorstwa Brandona Williamsa (
mbrandonw
) .(Scalone przez Junio C Hamano -
gitster
- w zatwierdzeniu 792e22e , 31 stycznia 2017 r.)źródło