Muszę opracować dwa projekty Django, które mają 90% tego samego kodu, ale mają pewne wariacje w kilku aplikacjach, szablonach i wewnątrz samego modelu.Najlepsza praktyka zarządzania wariantami projektu w Git?
Używam Git do rozproszonego sterowania źródłami.
Moje wymagania są następujące:
wspólny kod dla obu projektów jest rozwijany w jednym miejscu (środowisko programistyczne project1'S)
okresowo to jest połączone w środowisku programistycznym drugiego projektu (Project2)
odmiany nie są łatwo hermetyzowane w aplikacjach. (Np. Istnieją aplikacje. Takie jak „profile”, które różnią się między project1 i Project2 ale dla których nie ma też trwają wspólne Evolution)
zarówno Project1 i Project2 mieć repozytoria publicznych, tak, że mogę współpracować z innymi
Podobnie Project1 i Project2 powinny mieć serwery programistyczne, demonstracyjne, testowe i produkcyjne.
Jednak publiczne repozytorium nie znajduje się na tym samym serwerze w obu przypadkach. Tak więc, na przykład, kiedy rozwijam się w Project1, chcę być w stanie "popchnąć" do mojego serwera github, ale nie mam tam rzeczy Project2.
istnieją pliki, takie jak local_settings.py które są całkowicie różne od project1 i Project2, ale powinny być dzielone między wielu twórców każdego projektu
Więc co jest najlepszym sposobem zarządzania w tej sytuacji?
To, co wydawałoby się idealne, byłoby czymś w rodzaju "filtrowanego przyciągania", gdzie zamiast .gitignore mówiąc "ignoruj ten plik w całości", mogę powiedzieć "zignoruj ten plik podczas wyciągania z tego repo", którego nie mogłem zobaczyć coś podobnego do tego w dokumentacji, ale czy może być coś takiego?
Cześć Macarse, myślałem o wspólnym repo, ale nie sądzę, że to wystarczające. (W dalszym ciągu będę musiał opracować (naprawienie błędu) w repozytoriach Project1 i Project2 i będę chciał wypchnąć wspólne poprawki z powrotem do wspólnego repo.) Problem polega na tym, że chcę częściowo odepchnąć, nie pozostawiając myśli, że repozytorium wspólne jest nieaktualne Czy to źle? – interstar