Как переключать ветки SVN с помощью GIT-SVN? - PullRequest
22 голосов
/ 08 апреля 2009

Дублирование

Как заставить git-svn использовать определенную ветку svn в качестве удаленного хранилища?

Я использую git-svn для отслеживания разработки кем-то еще на svn. Я пытаюсь выяснить, как использовать gti-svn для переключения с одной ветви svn на другую. Все примеры, которые я смог найти, говорят об использовании svn switch в качестве метода переключения местоположения вместо реальных веток.

По сути, я хотел бы начать тянуть с /svn/branch/1.3 вместо /svn/branch/1.2 используя svn fetch.

Ответы [ 3 ]

21 голосов
/ 19 мая 2009

Эти команды были невероятно полезны для меня при работе над ветками svn через git-svn:

#create local Git branch that mirrors remote svn branch

git checkout -b local/RELEASE-0.12 RELEASE-0.12 
#will connect with a remote svn branch named ‘RELEASE-0.12′

# -n will show which svn branch you will commit into:
git svn dcommit --dry-run 

См. Полное объяснение в моей статье на justaddwater.dk .

7 голосов
/ 08 апреля 2009

Если вы правильно клонировали SVN-репозиторий (используя -T -b -t или -s), вы сможете использовать такие команды git branch:

git reset --hard remotes/branch

git checkout branch

и т.д.

0 голосов
/ 16 ноября 2015

По моему опыту, он отлично работает, просто

git checkout -b RELEASE-0.12 RELEASE-0.12

Префикс local/ не нужен, и меня меньше смущает его оставить. Старая ветка RELEASE-0.12 уже является удаленной веткой, поэтому git не будет путать ее с новой веткой.

Приведенная выше команда не будет создавать отношения ветвления отслеживания. Но в этом нет необходимости, git svn rebase работает так, как и ожидалось.

...