Git Отслеживание вверх по течению

Я работаю над проектом, и у меня есть центральный репозиторий git. Этот проект является скелетом, который является базовым для ряда вилок.

Можно ли настроить локальный рабочий репозиторий для вилки для отслеживания центральной части проекта в качестве источника и отслеживать мастер скелета как отдельную ветвь с именем вверх по течению, отслеживающую мастера скелета, чтобы изменить вишню в скелете?

Думаю, я хочу, чтобы мой рабочий процесс был чем-то вроде:

Создать скелет → Скелет вилки → Скелет выталкивает изменения из вилки 2 → Вилка 1 выталкивает изменения из скелета

Есть ли лучший способ сделать то, что я описал?

Ответ 1

Прочитайте " Шаг 3: Настройте пульты дистанционного управления на странице GitHub" Вилка репо" (я знаю, что вы не упоминали GitHub, но это по-прежнему актуально)

  • origin - это удаленный адрес вашей вилки, который ваш локальный клон может вытащить из/нажмите на
  • upstream - удаленный адрес вашего исходного репо Skeleton (вы можете добавить его с помощью git remote add upstream https://..../Skeleton.git)

Итак, восходящий поток не является ветвью.

Но вы можете определить локальную ветвь, которая будет иметь для ветвей вверху ветку управления удаленным отслеживанием от репозитория восходящего потока, с git branch:

git branch --set-upstream upstream_master upstream/master

Однако вам не нужен локальный ветвь, особенно если вы никогда не будете делать новые коммиты: вы можете напрямую сравнить своего хозяина с upstream/master, после git fetch upstream, выбрать вишню, что вам нужно от upstream/master.

Ответ 2

В соответствии с вашим описанием вы должны переустанавливать вилки на скелете всякий раз, когда он изменяется, используя

$ git rebase upstream

Это изменит ситуацию следующим образом:

initially:
1 - 2 - 3 <- upstream
        \- 4 <- fork

upstream changes:
1 - 2 - 3 - 5 - 6 <- upstream
        \- 4 <- fork

after rebase:
1 - 2 - 3 - 5 - 6 <- upstream
                \- 4 <- fork

Другими словами, ваша вилка будет выглядеть так, как если бы она была раздвоена из самой последней версии скелета.

Недостатком такого подхода является то, что он изменяет историю вилок... Если вы этого не хотите, вы можете просто объединить вверх по потоку в fork (нет необходимости в выборе вишневого цвета).