Chcę utworzyć publiczne repozytorium, aby umieścić przykładowe pliki z mojego głównego repo (prywatnego). Czy jest jakiś sposób na miękkie połączenie kilku folderów z repozytorium git do innego repozytorium git?Jak połączyć folder z repozytorium git do innego repo?
Odpowiedz
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
Submodules
pozwalają 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.
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/
Ś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