# Понедельник 19 твитов
Последние 10 лет я работаю в Яндексе, большую часть времени руководителем больших и маленьких групп разработки фронтенда.
16:51Бекендом я почти не занимаюсь — в основном фронтенд, но меня позвали поговорить про #git, а это полезно всем ;)
16:51Сегодня планируется сбор вопросов и болей, с завтрашнего ня будем их обсуждать все вместе.
16:51Первое внятное чтиво, которое раскрыло мне глаза на то что я понимаю неправильно было think-like-a-git.net — очень полезно и доступно!
17:20Ещё про литературу: для первого чтения НЕ рекомендую git-scm.com/book/ru/v1 — книга хорошая, но для тех кто уже «постиг дзен»
17:48Лучше почитать: www-cs-students.stanford.edu/~blynn/gitmagi… или короткие статьи вроде этой git-init.ru/import/git-is-… (мой перевод)
17:49В последнее время очень неплохие статьи и how-to по #git публикует #Atlassian atlassian.com/git
17:51@backendsecret забавно,обычно ее и советуют всегда.но я тоже не оценил :(
мне кажется это беда любой книжки-справоч… twitter.com/i/web/status/9…
Именно! Специфика git'а в том что нужно сначала понять его базовые концепции, а потом уже углубляться в детали реал… twitter.com/i/web/status/9…
17:58@backendsecret «Ну во-первых это красиво…» - что именно красиво в git? ИМХО, синтаксис команд довольно неинтуитивен… twitter.com/i/web/status/9…
Красива сама простота концепции, ну а фраза — часть анекдота ;) @last_khajiit twitter.com/last_khajiit/s…
18:03@backendsecret @gurugray Пользуюсь черепахой для работы с гитом. Нужно ли стараться переходить на консольное окно?
я за консоль — причин несколько, но основные: быстрее внедряются новые фичи и исправляются баги, легче автоматизиру… twitter.com/i/web/status/9…
18:05@backendsecret learngitbranching.js.org
да, это удобно :)
есть моя поделка, но в основном для демонстрации возможностей io.git-init.ru/git-trainer/ @alexshgov twitter.com/alexshgov/stat…
На ночь глядя: я перевёл на git два самых больших фронтендовых проекта в Яндексе, с тех пор их релизный цикл ускорится на порядки, буквально
22:15На ночь глядя: я перевёл на git два самых больших фронтендовых проекта в Яндексе, с тех пор их релизный цикл ускорится на порядки, буквально
Понятно, что тут был комплексный подход, но удобство работы с vcs сыграло немаловажную роль twitter.com/backendsecret/…
22:16@backendsecret Привет. Круто тебя тут видеть. Очень жду ярких дискуссий о влиянии регламентов на процессы.
Я думаю посветить этому завтрашний день @dkushnikov :) twitter.com/dkushnikov/sta…
22:32@skyryl @backendsecret Да, кстати, решение конфликтов при слиянии веток в черепахе довольно таки удобно. Это, единс… twitter.com/i/web/status/9…
Удобство решения конфликтов — очень субъективно, однако даже консольный клиент позволяет настроить инструмент для э… twitter.com/i/web/status/9…
22:34Также а ночь (ответ на вопрос) — в Яндекс не надо идти работать, когда не готовы отстаивать свои идеи и понимания оптимальности процессов ;)
22:38Доброе утро, передаю эстафету другому автору, а вопросы про git мне можно задавать в основном аккаунте @gurugray, надеюсь было полезно :)
8:53# Вторник 11 твитов
@backendsecret анекдот не слышал, расскажете?) и что насчёт альтернатив Git думаете, например, того же Mercurial?
Hg тоже хорошо, у Спольски есть неплохой мануал hginit.com который помогает разобраться с концепцией d… twitter.com/i/web/status/9…
7:59Всем ещё раз привет, сегодня поговорим про workflow (регламент)
11:37Несколько лет назад я написал краткую заметку git-init.ru/2013/post/why-… но она до сих пор актуальна
11:38На последнем проекте который я переводил с svn'а на git релизный цикл был ужасно медленным и мне предстояло это исправить
11:39Перевести сам проект технически було не сложно, основная сложность была в обучении инструменту и соблюдению регламента
11:39Первый регламент мы выбрали довольно сложный, но на тот момент минимизирующий влияние человеческого фактора — git-flow
11:41После становления процессов и автоматизации рутины — мы упростили регламент для разработчика и приблизились к минимальным действиям
11:42Наш worflow стал больше похож на GitHubFlow, что позволяет запускать протестированные релизы раз в день
11:43В целом про процессы и нашу роль в них я рассказывал на одном из субботников events.yandex.ru/lib/talks/3204/
11:50@backendsecret А что сложного в git flow? Мы его используем уже год и все оки.
Для web-проекта там много накладных расходов и процессов ради процесса, его сложность не в понимании, а в кол-ве де… twitter.com/i/web/status/9…
11:56@backendsecret А что сложного в git flow? Мы его используем уже год и все оки.
Ну и есть несколько шагов в нём, которые плохо ложатся на асинхронные релизы в командах больше 30 человек… twitter.com/i/web/status/9…
11:57# Среда 8 твитов
Подробно о том, как Microsoft решали проблему больших git-репозиториев.
MS в последние годы плотно занимается интеграцией git'а в свои продукты и делает это успешно twitter.com/mrmlnc/status/…
6:58Раз уж мы заговорили про большие репозитории и файлы — расскажу историю.
11:48В какой-то момент в проекте возникла необходимость хранить большие бинарные файлы версионируя их вместе с исходниками
11:49На тот момент на рыке было несколько решений, но на мой взгляд более перспективным и подходящим для нашего flow мне показался git-lfs
11:50И, хотя на тот момент он был довольно сыроват, мы внедрили его для хранения наших эталонных скриншотов и стабов данных
11:50git-lfs добавляет «точку отказа» и сложность в освоении инструмента, но даёт выигрыш по скорости и месту для хранения
11:52Преимущества git-lfs в том, что его поддержкой занимаются ребята из Github'а и сам протокол и клиент являются открытыми
11:57Детальнее можно прочитать на сайте самого проекта git-lfs.github.com и у Аталссиан atlassian.com/git/tutorials/…
11:58# Пятница 11 твитов
я прошу прощения, последние два дня по работе плотно, в пятницу вечером попробую ответить на те вопросы, которые задавали в реплаях
18:48@backendsecret А холивар Merge vs. Rebase будет?
merge и rebase важно применять вместе, чтобы соблюдать регламент и вести свою историю чистой для последующего разбо… twitter.com/i/web/status/9…
18:49@backendsecret Жду рассказов о тэгах, патчах и всяких штуках, типа хуках и .gitattributes
теги в git'е бывают двух типов ссылка и объект, благодаря дизайну можно затегать любой объект в системе… twitter.com/i/web/status/9…
18:52хуки довольно простая вещь — скрипт, который запускается в разные фазы работы — мы в своём проекте используем npm пакет git-hooks
18:54этот пакет позволяет организовать хуки так как это нам нравится и писать их, например на nodejs ;)
18:55@backendsecret Жду рассказов о тэгах, патчах и всяких штуках, типа хуках и .gitattributes
.gitattributes помогает настроить фильтры обработки файлов при чекауте и коммите, в частности через них работает уж… twitter.com/i/web/status/9…
18:56ещё тут настраивается единый формат перевода строк, если например в команде есть linux и windows разработчики help.github.com/articles/deali…
18:57@backendsecret @maxbeard12 возникает вопрос "а для чего углубляться, кроме как фо фан?" 99.9% разработчиков жмут 3 кнопки в сорс три и норм
углубляться нужно не только for fun, но и для того чтобы оптимизировать свои процессы @galnikrom twitter.com/galnikrom/stat…
19:04@backendsecret расскажите о git submodules, в каких кейсах это может быть полезно?
сабмодули полезны лишь тогда, когда вы используете внешнюю библиотеку и не вносите туда правок twitter.com/last_khajiit/s…
19:24однако они приносят много накладных расходов и не очень популярны, вследствие чего слабо развиваются
19:24из-за их сложности в core переехал другой механизм подключения зависимостей — subtree atlassian.com/blog/git/alter… но и у него есть особенности
19:26# Ссылки
other
- http://think-like-a-git.net/
- https://git-scm.com/book/ru/v1
- http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/ru/
- http://git-init.ru/import/git-is-simple.html
- http://git-init.ru/2013/post/why-git-flow.html
- https://www.atlassian.com/git
- https://www.atlassian.com/git/tutorials/git-lfs
- https://www.atlassian.com/blog/git/alternatives-to-git-submodule-git-subtree
- http://io.git-init.ru/git-trainer/
- https://events.yandex.ru/lib/talks/3204/
- http://hginit.com/
- https://git-lfs.github.com/
- https://help.github.com/articles/dealing-with-line-endings/