Najlepsza praktyka zarządzania wariantami projektu w Git?
Muszę opracować dwa projekty Django, które dzielą 90% tego samego kodu, ale mają kilka odmian w kilku aplikacjach, szablonach i samym modelu.
Używam Git do rozproszonej kontroli źródła.
Moje wymagania są następujące:
wspólny kod dla obu projektów jest tworzony w jednym miejscu (środowisko programistyczne Project1)
okresowo jest to łączone ze środowiskiem programistycznym drugiego projektu (Project2)
wariacje nie są łatwo zamykane w aplikacjach. (np. istnieją aplikacje, takie jak „profile”, które różnią się w zależności od Projektu 1 i Projektu 2, ale dla których istnieje również ciągła wspólna ewolucja)
zarówno Project1, jak i Project2 mają publiczne repozytoria, dzięki czemu mogę współpracować z innymi
podobnie Project1 i Project2 powinny mieć serwery programistyczne, demonstracyjne, inscenizacyjne i produkcyjne.
jednak w obu przypadkach publiczne repozytorium nie znajduje się na tym samym serwerze. Tak więc, na przykład, gdy tworzę w Project1, chcę być w stanie „pchnąć” do mojego serwera github, ale nie mam tam rzeczy Project2.
istnieją pliki, takie jak local_settings.py, które są całkowicie różne w Project1 i Project2, ale powinny być współdzielone przez wielu twórców każdego projektu
Jaki jest najlepszy sposób zarządzania tą sytuacją?
To, co wydaje się idealne, to coś w rodzaju „przefiltrowanego wyciągu”, w którym zamiast .gitignore mówiącego „zignoruj ten plik całkowicie”, mogę powiedzieć „zignoruj ten plik podczas wyciągania z tego repo” Nie widziałem nic podobnego w dokumentacji, ale czy może być coś takiego?