Каков наилучший метод для работы с двумя отдельными, но очень похожими базами кода в git и git-hub?
Справочная информация
У меня есть репозиторий git для небольшого проекта сценария оболочки,В нем всего 2 или 3 файла кода, и я часто работаю в одном файле.Хотя я изначально создал проект для достижения определенной цели, я пишу его, чтобы он был более полезным для других.Я пишу общую версию варианта использования, а затем изменяю ее, чтобы она соответствовала моей конкретной цели.В конкретной версии я мог бы изменять переменные, вводить пароль, переключать порядок части кода, извлекать цикл for ... что угодно.
Что я пробовал
Я пробовал два разных метода, и ни один из них не работал так оптимально, как я мог бы подумать:
- Два отдельных репо
- Проблема: код, измененный в одном, не может быть легко и выборочно объединенк другому
- Две ветви в одном репо
- Проблема: ветви должны в конечном итоге объединиться.Я не хочу когда-либо полностью объединять их вместе, но выборочно объединять части кода.
- Проблема: я обнаружил, что при попытке использовать команды слияния между ветвями было очень легко запутаться относительно того, чтокод в какую ветку сливался.Я как-то слил код между двумя из них, который был совершенно непреднамеренным, и не было никаких указаний относительно неправильного слияния, пока я не просмотрел содержимое файлов в обеих ветвях
Я также видел Как объединить две отдельные - но похожие - кодовые базы в один представитель SVN? , что касается SVN.Мне трудно следовать, так как я не знаю SVN.Я думаю, что это другой вопрос, потому что он не пытается сделать одну версию этого кода общедоступной.
Варианты использования, которые я хочу решить
В частности, проблема обнаруживается, когда:
- Синхронизация комментариев - я готовлю свою специализированную версию и замечаю, что могу добавить пояснительный комментарий в конце строки.Я добавляю его, но комментарий теперь не в обобщенной версии.
- Вещи, которыми я не хочу делиться - я готовлю свою специализированную версию и добавляю пароль или изменяю порядок выполнения операций.Я НЕ ХОЧУ, чтобы эти изменения были перенесены в обобщенную версию.
- Один и тот же файл - два вышеупомянутых изменения часто находятся в одном файле, что затрудняет объединение данных.Существуют интерактивные слияния, но я не знаю, можно ли взаимодействовать в одном файле.
- Общие -> Специализированные - я или кто-то другой может обновить обобщенную версию, чтобы иметь новый контент или комментарии, которые будутПолезно также иметь в моей специализированной версии.Я хочу перенести их из общего -> специализированного, не вмешиваясь в другие различия кода в специализированной версии.
Git vs Github
В основном мой вопрос состоит в том, как это сделатьэто внутри границ мерзавца.Тем не менее, это может повлиять и на взаимодействие с github.Моя обобщенная версия на github.Специализированная версия НЕ должна быть на github.Я думаю , что мой метод ветвления, описанный выше, не давил обе ветки, если я был осторожен ... но я всегда был неуверен.В любом случае, решение должно предусматривать наличие одной версии, которая является общедоступной, и одной версии, которая хранится локально ... даже если она немного сложна или требует осторожности.