- PVSM.RU - https://www.pvsm.ru -

Почему я ненавижу Git или Git не должен быть таким сложным для изучения

В наше время Git почти стал почти стандартом. Редко встретишь компанию, в которой бы не использовался git. На редком собеседовании тебя не спросят про эту CVS. При этом с каждым днем все больше фанатов других систем переходят именно на Git.

Возможности Git'а дают гибкость, которой нет у других. Но вместе с этим появляются и сложности. Будучи мощной системой, не все программисты с первого раза понимают что это, и как это работает:

Почему я ненавижу Git или Git не должен быть таким сложным для изучения

Дело усложняется еще и тем, что документация Git не блещет своей изящностью. Американские программисты даже говорят так:

The man pages are one almighty “fuck you”

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

Почему я ненавижу Git или Git не должен быть таким сложным для изучения

Признаться, автор этих строк и сам был невысокого о себе мнения и смотрел на профессионалов Git как на богов (или мне казалось, что они профессионалы). Но однажды мне попалась интересная статья "10 Things I Hate About Git [1]" и я понял, что я не был одинок и не я один считал Git довольно запутанной системой. Где-то я встречал упоминание о том, что кому-то потребовалось два года на то, чтобы понять как работает Git и чувствовать себя с ним комфортно.

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

1. Сложная информационная модель

(фанаты subversion негодуют).

2. Сложный командный синтаксис

(об этом еще чуть ниже).

3. Отстойная документация.

Так и есть, тут можно поподробнее. Автор статьи приводит такой пример для команды git-push (попробуйте понять с первого раза без перевода):

git-push – Update remote refs along with associated objects

А теперь человеческий перевод: загружает изменения из вашего локального репозитория в удаленный.

Или, скажем, такой шедевр:

git-rebase – Forward-port local commits to the updated upstream head

Человеческий перевод: последовательно повторить серию коммитов таким образом, чтобы они были применены к текущей ветке.

Список можно продолжить. В конце статьи дан список бесмысленных команд и команд с параметрами, которые уже наделены смыслом. Вот неполный список этих команд (кто хочет взглянуть на полный список может пройти по ссылке выше):

Базовая команда Бесполезная функциональность Полезная команда Полезная функциональность
git branch foo Создает ветку, но не переключается на нее git checkout -b foo Создает ветку и переключается на нее
git add Ничего не делает, выводит предупреждение git add . Добавляет изменения в текущем каталоге

И т.д.

Часть 2. Как все работает или знаешь ли ты Git так, как знаю его я

У начинающего освоение Git займет какое-то время. Но что делать в том случае, если у тебя нет двух лет на то, чтобы понять, как все работает. К счастью я случайно наткнулся на замечательный сайт Think like a Git [2] (думай как Git) и он мне настолько понравился, что я полностью перевел его на русский язык, чем и хочу поделиться с Хабра-общественностью.

Думай как Git, перевод на русский. [3]

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

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

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

Автор: Gangsta

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/git/30327

Ссылки в тексте:

[1] 10 Things I Hate About Git: http://steveko.wordpress.com/2012/02/24/10-things-i-hate-about-git/

[2] Think like a Git: http://think-like-a-git.net

[3] Думай как Git, перевод на русский.: http://git.geekjob.ru

[4] Источник: http://habrahabr.ru/post/174163/