Поэтому я устроился на работу, когда фирма использует SVN (но в будущем переедет на Git). Проблема в том, что я не знаю SVN. Я пробовал многочисленные запросы Google, и все, что я когда-либо смог найти, - это учебные пособия по SVN-> Git, блоги «Почему Git лучше, чем SVN» и особый «шпаргалка», которая дает (некоторые) сопоставимые команды ...
Если не считать книги О'Рейли о SVN, каковы краткие (но не слишком короткие) инструкции для SVN для пользователей Git?
Ответы:
Каноническим справочником является Redver Subversion . Независимо от ваших прошлых навыков, прочитайте это из свежих, и вы получите всю необходимую информацию об использовании. Это не сложно и не совсем чуждо, большинство людей говорят, что SVN гораздо проще понять, чем git, поэтому вам будет достаточно немного прочитать основные команды. Глава о базовом использовании должна помочь вам без проблем.
Есть 2 основных отличия:
Разветвление тривиально, слияние далеко не так плохо, как того хотят апологеты DVCS, особенно если вы придерживаетесь «стандартного» трио папок верхнего уровня (называемых стволом, ветвями и тегами).
Есть несколько моментов, в которых SVN превосходит Git, приходят на ум редкие каталоги - где вы извлекаете только часть своего репо. Когда вам нужно больше деталей, вы обновляете только то, что вам нужно. Если у вас огромное репо (например, основной продукт и множество плагинов), это замечательно.
Есть несколько битов, которые не так хороши, как git, возникает конфликт страшного дерева - когда у вас конфликт на уровне каталогов (то есть кто-то удалил файл, который вы редактировали)
Если вы работаете в Windows, используйте TortoiseSVN. Это качается в основном.
источник
git mv
. SVN имеетsvn move
, но так как ветвление и слияние в SVN - это своего рода хак, я не верю, что он может автоматически разрешать конфликты деревьев, как это делает git ...git mv
реализован как add + remove. git использует эвристику, чтобы определить, произошло ли перемещение или копирование во время коммита (я думаю, что по умолчанию «80% + файла одинаковые?»)Используйте git svn, если это возможно. Я был в вашей ситуации, и после полугода разочарования я перешел на git svn и с тех пор был счастлив.
Git svn позволяет вам использовать репозиторий локально, а
git svn rebase
фиксация на сервере SVN затем обрабатывается с помощью a, который сбрасывает ваши локальные изменения в транк subversion, а затемgit svn dcommit
который фиксирует перебазированные коммиты.Возможно, это не оптимально для продвинутого использования Subversion, но так как вы используете git локально, все в порядке.
При использовании git clone вы не должны клонировать корневую папку Subversion, а непосредственно ваш целевой каталог (клонировать
trunk
). Это заставит git работать намного быстрее, иначе ваша рабочая копия может стать огромной.Отказ от ответственности : я не знаю, какова ситуация, когда вы хотите создать ветки Subversion и т. Д. Команды, с которыми я работал, не использовали ветки (только я локальные ветки git).
источник