Как я могу сделать Git SVN правильно?

В рабочей среде нашим контролем версий является Subversion, и это вряд ли изменится. Я хочу использовать Git локально, в основном для локальных репозиториев.

контекст

Базовый URL: http://www.example.com/code./trunk, ./branches, ./tags).

Используя TortoiseGit, я смог указать, какой из них проверить. Я хотел бы, чтобы все ветви, теги и ствол были доступны локально. Это означает, что я мог бы объединиться из локальной ветви обратно в главную, если это необходимо, на основе одной из удаленных ветвей.

Как мне сделать это правильно?

После того, как этот долгий процесс завершился, я попытался выполнить ребазинг к remotes / branch /EXAMPLE-BRANCH1, используя TortoiseGit 'SVN Rebase', исходя из master в remotes/branch/test-branch, Это не удалось, сказав, что мастер был далеко позади.

Когда я пытался уйти от master в местный филиал на основе remotes/branch/test-branchСлияние не сработало.

1 ответ

Чтобы клонировать репо, включая все ствол / ветви / теги, со стандартной компоновкой (как вы уже упоминали):

git svn clone -s http://www.example.com/code new-repo-directory

ПРИМЕЧАНИЕ: использование мерзавца не является серебряной пулей. У вас все еще будут конфликты слияния / перебазировки, которые вам нужно будет решить. Вероятно, их будет намного меньше, но они не исчезнут полностью. Ошибка, вероятно, была точной и указывает на то, что вам нужно разрешить конфликты, а затем завершить перезапись git rebase --continue,

Я уверен, что черепаха - отличная помощь для многих вещей. Но мне много раз говорили, что вы получите намного больше от git, если научитесь использовать командную строку (и я верю, что я согласен) и использовать помощники GUI в качестве инструментов, только когда вы поймете, что они делают за сцены.

PS - git svn rebase предназначен для применения изменений, внесенных в SVN, поверх текущей отслеживаемой ветви SVN. Если вы пытаетесь объединить 2 разных отслеживаемых ветки SVN, вы захотите использовать git checkout branch-to-update затем git rebase branch-with-updates (и разрешите любые конфликты, тогда git add the-conflicted-file а также git rebase --continue пока не закончено).

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