2010-02-10 1 views
3

В настоящее время группой я являюсь частью SVN. Мы смотрим на переход к git. Я использовал git лично (и на самом деле использую git-svn для перехода обратно в основной репозиторий SVN), поэтому я убежден в его преимуществах.Изучение контроля версий с git первым или через SVN?

Одна из проблем заключается в том, что git более сложный, чем SVN. У нас есть совершенно новые люди, которым нужно будет изучить контроль версий с самого начала. Кто-нибудь есть опыт обучения контролю версий, прыгая прямо в git? Мне интересно, будет ли это слишком много или если проще будет не разучивать ожидания на основе SVN.

Есть ли у кого-нибудь опыт любого подхода - прыгать прямо в git или сначала познакомиться с svn?

+7

Если они не имеют никакого фона для контроля версий, я думаю, что это будет хорошо для них, чтобы перейти прямо в мерзавца. Не будет предвзятого мнения о том, что правильно. Иногда людям сложно научиться чему-то новому, когда они слишком зависают по старой концепции, т. Е. Должны блокироваться для изменения и файлового средства контроля версий. –

ответ

8

Я думаю, что это может зависеть от количества пользователей и настроек, которые у вас есть, обучения Git для небольшой пользовательской базы без слишком большого количества ветвей или специальных функций на самом деле очень просто и основные понятия управления версиями одинаковы. Там, где он начинает расходиться, вы получаете более сложную стратегию управления проектами с несколькими филиалами и персоналом по развитию.

Итак, если у вас есть небольшая команда, я бы сказал, прыгните прямо в Git.

Если у вас есть большая команда, и вы прыгаете прямо в Git, тогда будьте готовы осознать, что вам, возможно, понадобится перенастроить настройку ваших репозиториев на более поздний срок, как только вы поймете систему лучше.

0

Я не знаю, что лучше , но мерзавец выставляет некоторые «высокий уровень» думать о контроле источника, который я хотел бы я знал, даже тогда, когда все, что я знал о был Svn ...

Если вы может справиться с кривой обучения, я бы рекомендовал git.

+5

git не имеет высокой кривой обучения. svn имеет высокую кривую unlearning. Вы можете наблюдать разницу при работе с незнакомыми людьми. – Dustin

9

Используйте то, что вы собираетесь использовать. Нет причин тратить время на то, чтобы набирать привычки, которые не применимы к вашей производственной среде. Контроль источника - это не хирургия мозга - не делайте это сложнее, чем нужно.

+0

Я обнаружил, что команда разработчиков снова и снова сталкивается с проблемами из-за злоупотребления системами управления источниками, что делает ее слишком сложной и трудноподдерживающей. Просто потому, что система CAN может что-то сделать, это не значит, что это лучший способ сделать это. Будь проще :) –

0

Я вхожу в аналогичную позицию: используя git-svn, а другие используют простой svn. Разница для нас - это то, что мы сошли с VSS на SVN. Попытка научить людей об атомных коммитах была достаточно сложной, я не думаю, что мы когда-нибудь попытаемся заставить git.

Если у вас есть свежие люди, которых я бы пойти на прямой мерзавец, потому что управление версиями настолько более убедительным, если у вас есть локальные коммиты и

перебазироваться -i кривой

4

Учебном для мерзавца это чистый ад. Небольшое обучение легко, но также опасно :-) Однако во многих отношениях это хороший инструмент, и я не думаю, что ваши пользователи будут хорошо обслуживаться, изучая svn в первую очередь. Многие из сильных сторон git (разветвление и слияние, клонирование, отключенные коммиты) не имеют смысла в контексте svn, или они работают по-другому.

Вот некоторые из вещей, которые я рассказываю людям, когда я учил их мерзавца:

  • Начать с Git Magic.
  • Не ожидайте, что все будет иметь смысл.
  • На поверхностном уровне команды git кажутся очень мощными и ортогональными, так что работает много комбинаций. Не обманывайте себя.Не каждая комбинация работает; например, никогда не пытайтесь нажать на репозиторий, в котором есть извлеченные рабочие файлы, особенно если они имеют изменения. Мгновенная потеря!
  • Придерживайтесь модели, в которой git был разработан для: каждый разработчик поддерживает рабочее репо и публичное репо. Вы вносите изменения в свое рабочее репо, подталкиваете их к своему публичному репо и извлекаете из публичных репозиций других разработчиков.
  • Не забудьте тянуть не двойное нажатие; вытягивание также делает слияние.
  • Не забывайте, что вы не можете объединиться, пока не будут совершены все локальные изменения.
  • Для управления фиксаций и индекс, используйте git-gui :-)
Смежные вопросы