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