gurugray

16 октября 2017, Москва, Россия

# Понедельник 19 твитов

Всем привет, на этой неделе с вами @gurugray и мы поговорим про #git и пророка его #github

13:51

Последние 10 лет я работаю в Яндексе, большую часть времени руководителем больших и маленьких групп разработки фронтенда.

13:51

Бекендом я почти не занимаюсь — в основном фронтенд, но меня позвали поговорить про #git, а это полезно всем ;)

13:51

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

13:51

Вопросы можно начинать задавать. Например почему #git? — «Ну во-первых это красиво…»

14:18

Первое внятное чтиво, которое раскрыло мне глаза на то что я понимаю неправильно было think-like-a-git.net — очень полезно и доступно!

14:20

Ещё про литературу: для первого чтения НЕ рекомендую git-scm.com/book/ru/v1 — книга хорошая, но для тех кто уже «постиг дзен»

14:48

Лучше почитать: www-cs-students.stanford.edu/~blynn/gitmagi… или короткие статьи вроде этой git-init.ru/import/git-is-… (мой перевод)

14:49

В последнее время очень неплохие статьи и how-to по #git публикует #Atlassian atlassian.com/git

14:51
@backendsecret забавно,обычно ее и советуют всегда.но я тоже не оценил :(
мне кажется это беда любой книжки-справоч… twitter.com/i/web/status/9…

Именно! Специфика git'а в том что нужно сначала понять его базовые концепции, а потом уже углубляться в детали реал… twitter.com/i/web/status/9…

14:58
@backendsecret «Ну во-первых это красиво…» - что именно красиво в git? ИМХО, синтаксис команд довольно неинтуитивен… twitter.com/i/web/status/9…

Красива сама простота концепции, ну а фраза — часть анекдота ;) @last_khajiit twitter.com/last_khajiit/s…

15:03
@backendsecret @gurugray Пользуюсь черепахой для работы с гитом. Нужно ли стараться переходить на консольное окно?

я за консоль — причин несколько, но основные: быстрее внедряются новые фичи и исправляются баги, легче автоматизиру… twitter.com/i/web/status/9…

15:05
@backendsecret learngitbranching.js.org

да, это удобно :)
есть моя поделка, но в основном для демонстрации возможностей io.git-init.ru/git-trainer/ @alexshgov twitter.com/alexshgov/stat…

17:03

На ночь глядя: я перевёл на git два самых больших фронтендовых проекта в Яндексе, с тех пор их релизный цикл ускорится на порядки, буквально

19:15
На ночь глядя: я перевёл на git два самых больших фронтендовых проекта в Яндексе, с тех пор их релизный цикл ускорится на порядки, буквально

Понятно, что тут был комплексный подход, но удобство работы с vcs сыграло немаловажную роль twitter.com/backendsecret/…

19:16
@backendsecret Привет. Круто тебя тут видеть. Очень жду ярких дискуссий о влиянии регламентов на процессы.

Я думаю посветить этому завтрашний день @dkushnikov :) twitter.com/dkushnikov/sta…

19:32
@skyryl @backendsecret Да, кстати, решение конфликтов при слиянии веток в черепахе довольно таки удобно. Это, единс… twitter.com/i/web/status/9…

Удобство решения конфликтов — очень субъективно, однако даже консольный клиент позволяет настроить инструмент для э… twitter.com/i/web/status/9…

19:34

Также а ночь (ответ на вопрос) — в Яндекс не надо идти работать, когда не готовы отстаивать свои идеи и понимания оптимальности процессов ;)

19:38

Доброе утро, передаю эстафету другому автору, а вопросы про git мне можно задавать в основном аккаунте @gurugray, надеюсь было полезно :)

5:53

# Вторник 11 твитов

@backendsecret анекдот не слышал, расскажете?) и что насчёт альтернатив Git думаете, например, того же Mercurial?

Hg тоже хорошо, у Спольски есть неплохой мануал hginit.com который помогает разобраться с концепцией d… twitter.com/i/web/status/9…

4:59

Всем ещё раз привет, сегодня поговорим про workflow (регламент)

8:37

Несколько лет назад я написал краткую заметку git-init.ru/2013/post/why-… но она до сих пор актуальна

8:38

На последнем проекте который я переводил с svn'а на git релизный цикл был ужасно медленным и мне предстояло это исправить

8:39

Перевести сам проект технически було не сложно, основная сложность была в обучении инструменту и соблюдению регламента

8:39

Первый регламент мы выбрали довольно сложный, но на тот момент минимизирующий влияние человеческого фактора — git-flow

8:41

После становления процессов и автоматизации рутины — мы упростили регламент для разработчика и приблизились к минимальным действиям

8:42

Наш worflow стал больше похож на GitHubFlow, что позволяет запускать протестированные релизы раз в день

8:43

В целом про процессы и нашу роль в них я рассказывал на одном из субботников events.yandex.ru/lib/talks/3204/

8:50
@backendsecret А что сложного в git flow? Мы его используем уже год и все оки.

Для web-проекта там много накладных расходов и процессов ради процесса, его сложность не в понимании, а в кол-ве де… twitter.com/i/web/status/9…

8:56
@backendsecret А что сложного в git flow? Мы его используем уже год и все оки.

Ну и есть несколько шагов в нём, которые плохо ложатся на асинхронные релизы в командах больше 30 человек… twitter.com/i/web/status/9…

8:57

# Среда 8 твитов

Подробно о том, как Microsoft решали проблему больших git-репозиториев.

visualstudio.com/learn/git-at-s…
gvfs.io

MS в последние годы плотно занимается интеграцией git'а в свои продукты и делает это успешно twitter.com/mrmlnc/status/…

3:58

Раз уж мы заговорили про большие репозитории и файлы — расскажу историю.

8:48

В какой-то момент в проекте возникла необходимость хранить большие бинарные файлы версионируя их вместе с исходниками

8:49

На тот момент на рыке было несколько решений, но на мой взгляд более перспективным и подходящим для нашего flow мне показался git-lfs

8:50

И, хотя на тот момент он был довольно сыроват, мы внедрили его для хранения наших эталонных скриншотов и стабов данных

8:50

git-lfs добавляет «точку отказа» и сложность в освоении инструмента, но даёт выигрыш по скорости и месту для хранения

8:52

Преимущества git-lfs в том, что его поддержкой занимаются ребята из Github'а и сам протокол и клиент являются открытыми

8:57

Детальнее можно прочитать на сайте самого проекта git-lfs.github.com и у Аталссиан atlassian.com/git/tutorials/…

8:58

# Пятница 11 твитов

я прошу прощения, последние два дня по работе плотно, в пятницу вечером попробую ответить на те вопросы, которые задавали в реплаях

15:48
@backendsecret А холивар Merge vs. Rebase будет?

merge и rebase важно применять вместе, чтобы соблюдать регламент и вести свою историю чистой для последующего разбо… twitter.com/i/web/status/9…

15:49
@backendsecret Жду рассказов о тэгах, патчах и всяких штуках, типа хуках и .gitattributes

теги в git'е бывают двух типов ссылка и объект, благодаря дизайну можно затегать любой объект в системе… twitter.com/i/web/status/9…

15:52

хуки довольно простая вещь — скрипт, который запускается в разные фазы работы — мы в своём проекте используем npm пакет git-hooks

15:54

этот пакет позволяет организовать хуки так как это нам нравится и писать их, например на nodejs ;)

15:55
@backendsecret Жду рассказов о тэгах, патчах и всяких штуках, типа хуках и .gitattributes

.gitattributes помогает настроить фильтры обработки файлов при чекауте и коммите, в частности через них работает уж… twitter.com/i/web/status/9…

15:56

ещё тут настраивается единый формат перевода строк, если например в команде есть linux и windows разработчики help.github.com/articles/deali…

15:57
@backendsecret @maxbeard12 возникает вопрос "а для чего углубляться, кроме как фо фан?" 99.9% разработчиков жмут 3 кнопки в сорс три и норм

углубляться нужно не только for fun, но и для того чтобы оптимизировать свои процессы @galnikrom twitter.com/galnikrom/stat…

16:04
@backendsecret расскажите о git submodules, в каких кейсах это может быть полезно?

сабмодули полезны лишь тогда, когда вы используете внешнюю библиотеку и не вносите туда правок twitter.com/last_khajiit/s…

16:24

однако они приносят много накладных расходов и не очень популярны, вследствие чего слабо развиваются

16:24

из-за их сложности в core переехал другой механизм подключения зависимостей — subtree atlassian.com/blog/git/alter… но и у него есть особенности

16:26

other