Пользуюсь давно исключительно svn , решил вот попробовать что же за зверь такой jit.
Установил GUI клиент ( SourceTree ), попробовал поработать с файлами — получается то же что в svn,
модифицируем файл, коммитим, если что не так — реверт, чтобы реверт вступил в силу нужно его также закоммитить.
Т.е. для одного разработчика я так понимаю никаких отличий нет ? Или есть все таки плюшки ?
Почитал несколько статей Git для Svnщинков ,
http://habrahabr.ru/post/68341/
http://www.ibm.com/developerworks/ru/library/l-git-subversion-1/
Так особых отличий не увидел, кроме отличия что
1. репозиторий хранится локально, можно сколько угодно коммитить/ревертить пока не стабилизируется версия. Потом можно залить изменения на сервер.
В случае git локальный репозиторий выполняет роль отдельно созданной ветки в svn, что впринципе удобно — не нужно плодить на каждую фичу для каждого разработчика ветку.
Но остается много вопросов :
1. Как все таки обстоят дела с merge , по сути задача merge не относится ни к svn, ни к git. Задача — есть два файла, нужно их склеить, для этого существуют некие алгоритмы, которые имхо, что git, что svn должны использовать наилучшие наработки. Т.е. по идее геморой с merge в git должен остаться таким же как в svn, но есть в статьях упоминание что merge сделан хорошо, как все таки дела на практике обстоят ? Насколько часто конфликты возникают ?
2. Пишут что в git нет понятия ревизий , но ведь на сервере каждый push должен по идее иметь четкий номер, иначе же это бардак будет ?
3. Как в git организована работа с разными версиями продукта, например есть 2 версии 1.2, 1.3, в случае svn общая правка делается в одной из веток, потом merge с другой веткой.
Как процесс в git будет отличаться ?