Как заставить git-svn использовать определенную ветку svn в качестве удаленного хранилища?
-
08-07-2019 - |
Вопрос
Слово предупреждения: я вообще n00b для git
. Моя команда использует ветви функций в svn
, и я хотел бы использовать git-svn
для отслеживания моей работы над определенной веткой функций. Я (примерно) следил за записью Энди Делькамбре настроить мое локальное хранилище git
, но эти инструкции, похоже, побудили git
выбрать ветку svn
, которая совсем недавно изменилась как удаленная хранилище; проблема в том, что это не та отрасль, которая мне нужна. Как мне контролировать, какая ветка git-svn
использует? Или я подхожу к этому совершенно неправильно?
ОБНОВЛЕНИЕ: я использовал параметры -T
, -b
и -t
(в моем случае, потому что svn В репо
есть несколько проектов, но я хочу, чтобы репо git
содержало только проект, над которым я работаю).
Решение
Спасибо за помощь в блоге Барта за этот удобный справочник по веткам svn в мерзавец . Очевидно, все, что мне было нужно, это указать удаленную ветвь при создании ветки git
, например,
git checkout -b git-topic-branch-foo foo
где foo
- имя удаленной ветви.
Другие советы
Вы также можете взглянуть на это: git-svn - это наркотик - грабитель на рельсах .
Я использовал что-то подобное, когда мне нужно было убедиться, что моя локальная ветка указывает на правильную удаленную ветку svn:
git branch -r
чтобы получить имя удаленной ветви, которую я хочу отслеживать. Тогда
git reset --hard remotes/svn-branch-name
чтобы явно изменить мою локальную ветку, чтобы она указывала на другую удаленную ветвь.
Сначала мне нужно было запустить git svn fetch, поскольку ветка, с которой я хотел связаться, была создана после моего клиента git.
Я использую git-svn, но я не использовал функции, которые взаимодействуют с ветками SVN. Сказав это, я заметил, что учебник, которым вы следовали, не использовал -T, -b , -t опции для git svn init. Эти опции сообщают git-svn, как называются вышестоящие каталоги trunk / branch / tags, что может быть важно в вашей ситуации.