2016-04-11 9 views

Odpowiedz

20

Następnie należy użyć submodułów do tego zadania.

Podmodule to różne repozytoria git w tym samym katalogu głównym.
ten sposób można zarządzać 2 inny projekt na poziomie folderu wewnątrz repozytorium głównego

Submodulespozwalają zagranicznych repozytoriów być osadzony w specjalnym podkatalogu z drzewa źródłowego, zawsze wskazał na szczególne zobowiązanie.


git submodule

Przerwa swój wielki projekt do projektów cząstkowych jak robiłeś do tej pory.
Teraz dodać każdy projekt sub wam główny projekt za pomocą:

git submodule add <url> 

Kiedy projekt zostanie dodany do repo, trzeba init i zaktualizować go.

git submodule init 
git submodule update 

Od Git 1.8.2 nowa opcja --remote dodano

git submodule update --remote --merge 

będzie fetch najnowsze zmiany od góry w każdym modułem, merge them in i check out ostatnia wersja modułu.

Jak the docs opisać go:

--remote

Opcja ta jest poprawna wyłącznie dla polecenia aktualizacji. Zamiast korzystać z nagranego SHA-1 superproject'a do aktualizacji modułu, użyj statusu oddziału zdalnego śledzenia modułu.

Jest to równoważne uruchomieniu git pull w każdym module.


Jednak, jak będę naciskać commit w scenariuszu bug fix w C, która wpływa na kod współdzielony z warstwami macierzystymi?

Znowu: używając podmodułu umieści swój kod wewnątrz głównego projektu jako część jego zawartości. Różnica między posiadaniem go lokalnie w folderze lub posiadaniem go jako części modułu częściowego polega na tym, że w module częściowym zawartość jest zarządzana (zatwierdzana) do innego samodzielnego repozytorium.


To jest ilustracja submodułu - projektu wewnątrz innego projektu, w którym każdy projekt jest samodzielnym projektem.

enter image description here


git subtree

Git subtree pozwala wstawić dowolny repozytorium jako podkatalogu innego jednej

bardzo podobny do submodule, ale główna różnica polega na tym, gdzie twój kod jest zarządzany. W submodułach zawartość jest umieszczana wewnątrz oddzielnego repo i jest tam zarządzana, co pozwala na sklonowanie jej również do wielu innych repozytoriów.

subtree zarządza zawartość jako część projektu głównego, a nie w odrębnym projekcie.

Zamiast zapisywać, jak je skonfigurować i zrozumieć, jak z niego korzystać, wystarczy przeczytać ten doskonały wpis, który wyjaśni to wszystko.

https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/

+0

Świetne odniesienie do SubModules i SubTrees. Nie widzę, aby wyraźnie odwołać się do odwołania do podkatalogu repozytorium źródłowego w repozytorium docelowym. – skitheo

Powiązane problemy