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?

questionAnswers(5)

yourAnswerToTheQuestion