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
Другими словами, ваша вилка будет выглядеть так, как если бы она была разветвлена из самой последней версии скелета.
Недостаток этого подхода в том, что он меняет историю вилок... Если вы не хотите этого, вы можете просто слить вверх по течению в форк (думаю, не нужно выбирать вишню).