Как стать автором
Обновить
50.93

Git *

Система управления версиями файлов

Сначала показывать
Порог рейтинга
Уровень сложности

Как в git работает HEAD

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 9.2K

Недавно я провела в Mastodon опрос о том, насколько мои читатели уверены в том, что они хорошо понимают работу HEAD в Git. Результаты (на основании примерно 1700 голосов) меня немного удивили:

10% — 100%

36% — достаточно сильно уверен

39% — уверен в некоторой степени

15% — представления не имею

Меня удивило, что люди не уверены в своём понимании: я-то считала, что HEAD — это довольно простая тема.

Обычно, когда остальные, в отличие от меня, считают какую-то тему запутанной, причина заключается в какой-то скрытой сложности, которую я не учитываю. И в дальнейших обсуждениях выяснилось, что HEAD действительно чуть сложнее, чем я считала!

Читать далее
Всего голосов 25: ↑22 и ↓3 +19
Комментарии 20

Новости

Современные команды и фичи Git, которыми стоит пользоваться

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 24K

Мы, разработчики ПО, пользуемся git каждый день, однако большинство из нас применяет только самые основные команды, например, addcommitpush и pull, как будто на дворе по-прежнему 2005 год.

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

Читать далее
Всего голосов 72: ↑70 и ↓2 +68
Комментарии 27

Настройка CI/CD для самых маленьких разработчиков

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 24K

Считается, что построение CI/CD - задача для DevOps. Глобально это действительно так, особенно если речь идет о первоначальной настройке. Но часто с докручиванием отдельных этапов процесса сталкиваются и разработчики. Умение поправить что-то незначительное своими силами позволяет не тратить время на поход к коллегам (и ожидание их реакции), т.е. в целом повышает комфорт работы и дает понимание, почему все происходит именно так.

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

Читать далее
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 39

Автодокументация Doxygen и её развертывание на GitHub Pages

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 5.2K

Наверняка вы создавали open source проекты и выкладывали их на GitHub, но я уверен, что очень немногие из вас создавали документацию для этих проектов. В этой статье я расскажу, как создавать и публиковать доки максимально просто.

Документация будет создаваться на основе исходного кода, она будет обновляться при каждом коммите и при этом будет доступна через интернет. Документирование происходит через Doxygen, в качестве хостинга выступает GitHub, а за обновление документации отвечает GitHub Pages.

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 1

Истории

Почему Facebook* не использует Git

Время на прочтение 8 мин
Количество просмотров 38K

Я работаю над созданием Graphite, источником вдохновения для которого стал внутренний инструментарий Facebook. Когда я решил создать стартап с друзьями, то никогда раньше не слышал о Mercurial, хотя всегда страстно любил инструменты разработчика. Мой предыдущий опыт разработки включал в себя личные проекты, домашнюю работу в колледже, разработку для iOS в Google и развитие инфраструктуры в Airbnb. На протяжении всей моей карьеры использование git было таким же естественным, как воздух. Он настолько популярен, что лично я считал его единственным подходящим инструментом для создания изменений в коде и управления ими.

Забавно, что специалист по Mercurial Грегори Gregory Szorc работал рядом со мной в Airbnb, хотя я знал его только как приятного коллегу, но не представлял, что он контрибьютор.

В 2021 году мои коллеги по команде Томас и Ник раскрыли мне глаза. Они пришли из Facebook и, к моему удивлению, едва знали Git. Зато они имели глубокое понимание паттернов Mercurial и рабочего процесса Facebook на основе «многослойных diff» (stacked diff). Со временем они убедили меня в полезности этого паттерна и мы развернули направление развития компании, чтобы реализовать многослойные diff для разработчиков GitHub.

Но пост посвящён не нашему стартапу. Он о важном вопросе, не дававшем мне покоя последние три года. Почему фейсбукеры не пользуются Git? Зачем они выбрали Mercurial и создали на его основе собственные рабочие процессы? Я знаю что Google не пользуется Git, но это логично, культура разработки Google возникла на пять лет раньше Git. Facebook же был основан примерно в то же время, что и создан Git, около 2004 года, и ко времени, когда Facebook начал серьёзно выбирать инструментарий для управления исходниками, Git был старше и популярнее Mercurial. Так почему же Facebook не использует Git?

Читать далее
Всего голосов 78: ↑70 и ↓8 +62
Комментарии 297

Вышел релиз GitLab 16.9 с расширенным доступом к бета-версии Duo Chat

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 869

GitLab 16.9


Мы с радостью объявляем о релизе GitLab 16.9 с GitLab Duo Chat, доступном для Premium пользователей SaaS и в инстансах с самостоятельным управлением! Также появилась возможность запрашивать изменения в мерж-реквесте без блокировки мержа, улучшенный интерфейс страницы переменных CI/CD, новые настройки для автоматической отмены конвейеров и многие другие фичи!

Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Раскладываем Git по полочкам: терминология

Время на прочтение 7 мин
Количество просмотров 12K

Первый раз столкнулись с Git и не понимаете, что это такое?

Устали бездумно выполнять серию комманд чтобы закинуть свой проект на GitHub?

Хотите понять, чем отличается merge, rebase, push и pull?

Надоело видеть ошибку о non fast-forward merge и не понимать, что с этим делать?

Сейчас попробуем разобраться в этом всем.

Поехали!
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 10

Git в условиях экстремальной атомарности веток

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 4.2K

Как устроены ваши ветки в git? Как они выглядят, какого размера? Под катом я вам расскажу, как сначала загнать себя в жесткие рамки, а потом одним лайфхаком справиться с последствиями.

Читать далее
Рейтинг 0
Комментарии 2

Популярные конфигурационные опции для работы с git

Время на прочтение 10 мин
Количество просмотров 9.8K

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

o    «В принципе, никто этим не пользуется»

o    «Этой опцией пользуется 80% аудитории, стоит ознакомиться»

o    «У этой опции предусмотрено 6 возможных значений, но в реальной практике применяется всего 2 из них».

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

А какие опции git config вы больше всего любите выставлять? В настоящее время у меня в ~/.gitconfig установлены только git config push.autosetupremote true и git config init.defaultBranch main, вот интересуюсь, а что выставляют другие люди.

Как обычно, получила КУЧУ отличных откликов и так узнала множество очень популярных опций конфигурации git, о которых ранее никогда не слышала.

Далее перечислю их по порядку, при этом (очень примерно) попытаюсь начать с наиболее популярных.

Все описанные опции документированы на странице man git-config, а также на этой странице.

Читать далее
Всего голосов 40: ↑39 и ↓1 +38
Комментарии 15

Итак, вы думаете, что знаете Git? Часть третья: реально большие репозитории

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 18K


Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.

Вам хочется использовать ванильный Git, чтобы управлять репозиторием с объёмом 300 ГБ в 3,5 млн файлов, которые без проблем получают пуш каждые 20 секунд от 4000 разработчиков? Тогда читайте дальше!


Вот агенда блога — наша блогенда:


Читать дальше →
Всего голосов 40: ↑38 и ↓2 +36
Комментарии 30

10 полезных команд Git

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 11K


В этой статье мы рассмотрим набор команд, которые немного облегчат вам жизнь и повысят продуктивность.
Читать дальше →
Всего голосов 36: ↑25 и ↓11 +14
Комментарии 9

Сборка в Gitlab как маркер здоровья архитектуры

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 7.5K

Не так давно мне довелось настраивать СI/CD для среднего по размеру проекта, состоящего из +-20 микросервисов и 5 переиспользуемых библиотек. Изначально все микросервисы и библиотеки жили в собственных репозиториях и я настроил CI/CD индивидуально для каждой репы, вынеся общие скрипты и настройки в отдельный проект. Так мы пожили какое-то время, после чего пришла идея объединить все в монорепу, для удобства сопровождения и большей прозрачности при разработке.

Читать далее
Всего голосов 16: ↑9 и ↓7 +2
Комментарии 19

Итак, вы думаете, что знаете Git? Часть вторая: новое в Git

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 26K

Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.


Далее в нашей серии постов из трёх частей у нас новые фичи! Здесь я расскажу про пять относительно новых вещей в git, о которых вы могли не слышать, потому что ну почему вы?


Мы взглянем на:


Погружаемся!
Всего голосов 42: ↑41 и ↓1 +40
Комментарии 84

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Итак, вы думаете, что знаете Git? Часть первая: старый добрый Git

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 14K

Автор оригинала Скотт Чакон — сооснователь GitHub и основатель нового клиента GitButler. Этот клиент ставит во главу угла рабочий процесс и удобство разработки, в том числе код-ревью, и не является просто очередной обёрткой над CLI git.


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



Давайте покопаемся!
Всего голосов 25: ↑24 и ↓1 +23
Комментарии 6

Гайд по работе с ветками (Figma Branch)

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 3.1K

Figma Branch (или «ветка») — это функционал, который позволяет создать копию проекта и изменять его независимо от основной версии. Когда работа завершена и нужно внести изменения в основной проект — ветка сливается с master-версией. Всё как у разработчиков. Но чтобы использовать Branch, ваш тариф должен быть Organization или Enterprise.

Предпосылки 
При коллективной работе над проектом, всегда встречаются классические проблемы: что/когда/кем было добавлено в проект и почему компоненты сломались. Я часто видел костыльное решение — складывать готовые экраны и компоненты куда-то в угол канваса, тегать лида комментом, а после ревью — чистить за собой, мрак. Проще, быстрей, дешевле использовать функционал Branch, тем более они идеально подходят для следующих сценариев:

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 4

Оффлайновое использование Git

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 12K

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

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

Читать далее
Всего голосов 40: ↑38 и ↓2 +36
Комментарии 17

Вышел релиз GitLab 16.8 с поддержкой менеджера секретных ключей GCP и возможностью ускорения сборок с прокси зависимосте

Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 2.5K
Читать дальше →
Всего голосов 8: ↑6 и ↓2 +4
Комментарии 0

Как мы управляем инфраструктурой на более 1000 серверов при помощи Ansible

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 15K

Привет, Хабр! Мы системные инженеры X5 Tech — Алексей Кузнецов и Борис Мурашин. У нас за плечами больше 15 лет опыта, в том числе поддержка сервисов Rapida, CyberPlat, TeleTrade, сопровождение стека BigData и внедрение кластеров Hadoop. В этой статье мы расскажем, как выбирали систему управления конфигурациями, какими критериями руководствовались, что в итоге выбрали, с какими проблемами столкнулись и как их решали.

Рассматривать вопрос, зачем вообще нужна система управления конфигурацией, не будем. Потому что считаем, что если у вас больше одного сервера, она уже необходима. Перейдём сразу к тому, почему мы выбрали именно Ansible.

Читать далее
Всего голосов 34: ↑34 и ↓0 +34
Комментарии 22

Как мы упаковали управление аджайл проектов в стандартную версию GitLab

Время на прочтение 10 мин
Количество просмотров 2.7K

Привет, меня зовут Анастасия, я руководитель проектов в команде разработки Ареал. 

Моя ежедневная среда для управления проектами — задачник, оперативник, баг-репорт, gitlab с описаниями задач программистов, kaiten с описанием задач дизайнеров и проектировщиков. Мои коллеги сталкиваются с таким же “зоопарком” площадок, поэтому мы решили поэкспериментировать и свести управление в один инструмент — gitlab. Большинство команды знакомо с gitlab — программисты работают с кодом, проджекты ставят задачи. 

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 1

Darcs и Pijul. Системы контроля версий для тех, кто любит математику и не любит деревья

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 5.5K

Небольшой обзор систем контроля версий, альтернативных git, и основанных на математической теории. Речь пойдёт о двух системах распределённого контроля версий: Darcs, написанной на Haskell, и Pijul, написанной на Rust. Обе они сейчас активно развиваются и предлагают свои сетевые репозитории. Оказалось, что про них на Хабре толком нет ничего, тогда как про git образовался целый хаб. Поскольку я люблю и использую Haskell, я остановил свой выбор на Darcs, и вот, спустя два месяца непрерывной работы над библиотекой геометрической алгебры для hackage, я готов поделиться впечатлениями от её использования.

Читать далее
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 25

Вклад авторов