Страницы

Поиск по вопросам

суббота, 30 ноября 2019 г.

В чем различия между Git и SVN?

#git #svn #контроль_версий


Вопрос, собственно выбора. Чем Git лучше или хуже SVN? Почему чаще от разработчиков
я слышу именно про Git и его удобства, чем про SVN, хотя как по мне, все что слышал
можно делать и в SVN.

Причём для обоих вариантов есть удобный Tortoise, что сводит общение с репозиториями
практически на один уровень.

Может просто что-то плохо рекламируют, а разницы вообще нет?
    


Ответы

Ответ 1



GIT распределяется, а SVN - нет. Другими словами, если есть несколько разработчиков работающих с репозиторием у каждого на локальной машине будет ПОЛНАЯ копия этого репозитория. Разумеется есть и где-то и центральная машина, с которой можно клонировать репозиторий. Это напоминает SVN. Основной плюс в том, что если вдруг у вас нет доступа к интернету, сохраняется возможность работать с репозиторием. Потом только один раз сделать синхронизацию и все остальные разработчики получат поолную историю. GIT сохраняет метаданные изменений, а SVN целые файлы. Это экономит место и время. Система создания branches, versions и прочее в GIT и SVN отличаются значительно. В GIT проще переключатся с ветки на ветку, делать merge между ними. В общем GIT я нахожу немного проще и удобнее, но бывают конечно иногда сложности. Но где их не бывает? Разумеется есть гораздо больше отличий, но я перечислил те, которые чаще всего встречаются при работе с репозиториями и на МОЙ взгляд наиболее важные.

Ответ 2



Git сложнее для освоения. Лично мне git предпочтительнее, позволяет мне проще сделать больше разного. Например реорганизовать порядок и содержание коммитов. Работа с ветками имхо удобнее и быстрее, через git stash удобно проверять перед коммитом что не забыл добавить вновь созданный файл. Удобнее переносить свои наработки в разные ветки - создать локально ветку, в ней вести разработку, потом просто сделать merge ветки, в svn же нужно просматривать лог на предмет нужных коммитов и переносить их ручками.

Ответ 3



Так же распределённость git может быть полезна при восстановлении данных. Был случай когда накрылся жесткий диск на сервере, и все удалось восстановить благодаря локальным копиям. (P.S конечно лучше иметь зеркальные RAID, но дно другого не исключает).

Ответ 4



Сначала у нас контора работала на svn без веток, потом начали активно использовать гит с ветками, сейчас я устроился в другую контору которая работает на svn с ветками, и если честно каждый раз когда приходится сливать ветки - я с такой грустью и тоской вспоминаю гит, как там всё было просто и удобно, интуитивно понятно, и как кропотливо приходится трястись над каждым конфликтом, над каждым изменённым файлом в обеих ветках, когда гит большую часть умел разруливать сам. А заливание каталогов в svn вообще убивает если честно.

Ответ 5



Я бы в качестве одного из краеугольных отличий назвал бы еще lock http://svnbook.red-bean.com/en/1.7/svn.advanced.locking.html git удобнее тем, что не надо бегать с криком "уберите замок пожалуйста". С другой стороны, встает ряд дополнительных вопросов с merge кода, который впрочем при должном навыке с помощью инструментов git нормально решается.

Комментариев нет:

Отправить комментарий