2015-10-26

Git vs Svn

Решился, наконец, и перевел свои домашние проекты с Svn на Git.

Что мне нравится в Git больше всего, это как в нем сделаны branches. В отличие Svn или того же Perforce, где branch это копия всего кода в другом каталоге, в Git это новое измерение, альтернативная реальность. Можно быстро и легко переключаться между ними. Что очень удобно, если хочешь попробовать какую-нибудь новую идею, просто создаешь новый branch, пробуешь в нем, в любое время можно переключиться обратно.

А еще мне нравится GitX (для Mac-а), в которой хорошо видна вся история и легко переключаться на любой commit любого branch.

В Svn я обычно не пользовался branch-ами, а просто отыгрывал изменения назад. И как-то все было неудобно, даже найти нужную revision нелегко. Единственное, что мне нравилось в Svn, что вся история не хранится на каждом клиенте, а только на сервере. Но в Git 1.9 это, кажется, пофискили и можно сделать "git clone --depth 1" и получить только последнюю версию всех файлов, а потом сделать commit и "git push" обратно в репозитарий.

Репозитарий я храню на домашнем сервере Synology, в котором Git ставится как пакет.

Git уже содержит в себе "git svn" команду, которая позволяет легко импортировать всю историю в новый Git репозитарий. Что я и сделал в субботу для всех своих проектов, разбив большой Svn репозитарий на несколько независимых Git репозитариев (это тоже легко сделать в git svn).

Короче, пока доволен. Git+GitX - то, что надо для дома, для семьи.

GitX надо брать не с сайта разработчика, где он завис на ранней версии, а на Github, где его продолжают доводить до ума.