Git Tracking Upstream

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

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

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

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

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

2 ответа

Решение

Прочтите " Шаг 3. Настройка удаленных устройств" на странице GitHub "Fork a Repo" (я знаю, что вы не упомянули GitHub, но это все еще актуально)

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

Так что вверх по течению это не ветка.

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

git branch --set-upstream upstream_master upstream/master

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

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

$ 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

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

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

Другие вопросы по тегам