Как переключить ветки svn с помощью git -svn?
Duplicate
Как сделать git -svn использовать конкретную ветвь svn как удаленный репозиторий?
Я использую git -svn для отслеживания разработки кем-то еще на svn. Я пытаюсь понять, как использовать gti-svn для переключения из одной ветки svn в другую. Все примеры, которые я могу найти, говорят об использовании svn-переключателя как метода для переключения местоположения вместо фактических ветвей.
По сути, я хотел бы начать вытаскивать из /svn/branch/ 1.3 вместо/svn/branch/1.2
используя svn fetch.
Ответы
Ответ 1
Эти команды были невероятно полезны для меня при работе с ветвями 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.
Ответ 2
Если вы клонировали репозиторий SVN правильно (используя -T -b -t
или -s
), вы должны использовать команды ветвления git, такие как:
git reset --hard remotes/branch
git checkout branch
и др.
Ответ 3
По моему опыту, он отлично работает, просто
git checkout -b RELEASE-0.12 RELEASE-0.12
Префикс local/
не нужен, и мне не смущает оставить его. Старая ветка RELEASE-0.12
уже является удаленной ветвью, поэтому git не будет путать ее с новой веткой.
Приведенная выше команда не создаст отношения ветки отслеживания. Но это не нужно, git svn rebase
работает в любом случае.