Potrzebne będzie repozytorium dla każdej części. (każdy projekt i jeden lub więcej dla części wspólnych).
Aby uwzględnić te wspólne części, istnieją dwie możliwości.
Najpierw łatwa, tworzysz (prywatny) klejnot dla części wspólnych, co oznacza, że nie musisz niczego łączyć, po prostu dodaj klejnot [gemname]do swojego Gemfile. Gdy zaktualizujesz klejnot, wszystkie projekty wykorzystają zmieniony kod.
Jeśli chcesz dołączyć kod zewnętrzny do projektu, potrzebujesz trochę organizacji. Tworzysz mapę główną, na której klonujesz zarówno udostępnione, jak i repozytorium projektu. Następnie tworzysz (względne) dowiązanie symboliczne do udostępnionego folderu kodu. Możesz po prostu dodać to dowiązanie symboliczne do repozytorium git i zatwierdzić je. Musisz zaktualizować i zatwierdzić oba repozytoria oddzielnie.
Przykładem drugiego sposobu:
- projectfolder
--- shared code
--- project code
----- lib
------- shared (link to shared code)
Link do udostępnionego kodu tworzony jest przez komendę ln -s "../../../shared kodem" wspólnej
Oczywiście, działa to tylko w systemach obsługujących dowiązania symboliczne (mac i * nix).