Рабочий процесс обновления / поддержки разветвленного Git-репозитория
Я подписал репозиторий для добавления некоторых изменений в проект; это плагин Vim. Я планирую использовать свое раздвоенное репо в качестве источника для Vundle. Но я также хотел бы получать обновления от оригинального репо, если таковые имеются в будущем.
Как мне сохранить репо?
- У меня есть изменения в новой ветке; я должен слить это?
- Если я не объединю его, мне придется вручную переключиться на эту ветку после клонирования репозитория Vundle.
- Если я объединю его, как я получу обновления из исходного репо? Мастер изменился бы. Будет ли он добавлен как новая ветка?
- Было бы замечательно, если бы кто-то мог получить некоторые ссылки на статьи или предложить, как я должен искать решения / лучшие практики; мои поиски некоторое время выбирают мусор (возможно, у меня нет идей относительно точного именования вещей здесь).
нота:
- Я новичок в Git и Vim.
1 ответ
Если вы улучшаете плагин, лучшим решением может быть предложение вашего патча владельцу оригинального репо.
Если вы не можете или не хотите этого делать, вы можете оставить его в ветке разработчика или в master
, Это не будет иметь никакого значения: в любом случае вам придется объединить вашу ветку и origin/master
каждый раз, когда вы захотите получить обновление из апстрима.
Пример: предположим, что вы хотите сохранить его на своем локальном master
ветка. Тогда у вас будет:
A ----------------- B
L origin/master L master
где B
это коммит, который вы сделали со своими изменениями.
Когда вы хотите получить обновления из апстрима, используя git fetch origin
, вы бы в конечном итоге:
---- B
/ L master
/
A -- C -- D
L origin/master
Тогда вам просто нужно сделать, из вашего master
ветка: git merge origin/master
, чтобы получить коммит с вашими модификациями и обновлениями
---- B -- E
/ /L master
/ /
A -- C -- D
L origin/master
Как мы видим, было бы проще, если бы ваши изменения могли быть приняты до разработки. Мало того, что кто-то может извлечь из этого пользу; это также будет намного проще для вас.