Software

Почему git?

revised 23 July 2009

Мне тут по работе пришлось осваивать git. Полезно, когда тебя иногда подталкивают: раньше я к гиту относился прохладно, как к очередной распиаренной, но не приносящей ничего нового модной штуке. Однако, поработав на ней (нем?) полторы недели, я таки вошел во вкус и даже перевел на git все свои

Мне тут по работе пришлось осваивать git. Полезно, когда тебя иногда подталкивают: раньше я к гиту относился прохладно, как к очередной распиаренной, но не приносящей ничего нового модной штуке. Однако, поработав на ней (нем?) полторы недели, я таки вошел во вкус и даже перевел на git большинство своих проектов.

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

  • Быстро работает. Намного быстрее, чем SVN с внешним репозитарием (и не зависит от проблем соединения).
  • Не надо поднимать отдельный демон на сервере (есть gitosis).
  • Офигенно удобный merge. В подавляющем большинстве случаев файлы мержатся сами. Даже в тех редких случаях, когда слияние не отрабатывает, приходится править только несколько строк.
  • Локальные коммиты, локальные ветки. Можно делать со своим репозитарием все что угодно и не бояться испортить общак. Можно коммитить, валяясь на пляже c ноутом при полном отсутствии связи с внешним миром. Можно редактировать и откатывать коммиты.
  • Моментальное переключение между ветками. Тут SVN просто нечего сказать.
  • Удобство работы из консоли. В гите нет таких действий, которые настоятельно требуют GUI (а именно трехстороннего мержа а-ля SVN).
  • Нет папочек .svn в каждом каталоге. Особенно рады должны быть товарищи, которые любят копипастить каталоги с .svn, творя хаос в проекте.

Вот такие приятности ждут SVNщиков в гите. До новых встреч.

Ах да, главный вопрос – как же попробовать? Для этого надо взять себя за яйца и хотя бы недельку поработать на git с реальным проектом, а не основываться на первом впечатлении (дескать, команды какие-то не такие, tortoise’а нету, и т.д. и т.п.)