Обновить
41.12

Git *

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

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

Как можно упростить исправление конфликтов в «git rebase»

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели5.7K

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

Читать далее

Новости

Линтеры вне кода: как HTML, Markdown и YAML становятся предсказуемыми

Время на прочтение9 мин
Охват и читатели6.1K

Когда я прихожу в новый проект и провожу аудит, почти всегда вижу одну и ту же картину. Код аккуратный, линтеры строгие, CI настроен. Но стоит открыть разметку или конфиги — и начинается творческий беспорядок. Кто-то форматирует по одному, кто-то по другому, кто-то копирует куски из StackOverflow, не особо понимая синтаксис.

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

Со временем я перестал разделять «код» и «не код». Если файл участвует в работе продукта — он должен быть проверяемым. Автоматически. Без надежды на внимательность разработчика.

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

Читать далее

Как сделать GitLab CI/CD вашим лучшим другом для сборки и доставки Flutter приложений. Часть 3

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели4.9K

Flutter & GitLab CI/CD. Доставка мобильного приложения в Significa, TestFlight и Google Play

Привет! Меня зовут Данил Абдрафиков, я мобильный разработчик в компании TAGES. После успешной настройки сборки и подписания Flutter-приложений во второй части, остался последний, но не менее важный этап — дистрибуция приложения.

В современных условиях автоматизация деплоя на такие платформы, как Google Play, TestFlight и Significa, становится необходимостью. В этой статье мы разберем, как с помощью GitLab CI/CD настроить автоматическую отправку ваших приложений в магазины, чтобы вы могли сосредоточиться на разработке, а не на рутинных задачах.

Читать далее

Тюнинг .gitlab-ci.yml: 7 неочевидных фич GitLab CE для чистых и быстрых пайплайнов

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели6.4K

Сложно поддерживать CI/CD, когда граф пайплайна в GitLab превращается в бесконечную «простыню», параллельные запуски terraform apply приводят к блокировкам, а для игнорирования некритичных ошибок приходится писать || true

Может показаться, что для решения этих проблем нужны «костыли» или переход на enterprise-лицензию. На деле же с ними помогут встроенные возможности GitLab CE. В статье разбираем неочевидные ключевые слова .gitlab-ci.yml, которые сэкономят вам время и нервы.

Читать далее

SVN vs Git для проектов на Unreal и Unity

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

Unreal и Unity быстро превращают репозиторий в смесь кода, тяжёлых ассетов и командных привычек — и выбор VCS начинает влиять на работу каждый день. В статье сравниваются SVN и Git именно в контексте UE/Unity: блокировки файлов, права доступа, скорость, ветки и совместимость с CI/CD. Также разберем практические замечания по миграции и тому, как выстроить процесс так, чтобы он был понятен и разработчикам, и людям, которые живут в ассетах.

Читать далее

Настройка Git для одновременного fetch/push в несколько remotes. Синхронизация одной командой

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели4.8K

Прим: Дополняет мою статью "Скрипт полной миграции из GitLab на свой сервер".

После успешной миграции

А что делать со старым репозиторием?
Было бы логично использовать GitLab и другие хостинги в качестве вторичных (запасных).

Но как это делать? И еще не вручную?
Для синхронизации с remotes одновременно на свой Gogs и на все GitLab, GitHub, Bitbucket, ... remotes, об этом и других "хаках" ниже:

Читать далее

Разбираем фичи по кусочкам: атомарные коммиты как внутренняя дисциплина

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

Привет! Меня зовут Дима, я руковожу группой прикладной разработки в Naumen. Много лет работаю с командами, которые делают не одноразовые фичи, а долгоживущие системы — те, что развиваются годами, переживают смену людей, требований и контекста.

В этой статье поговорим о декомпозиции: зачем она на самом деле нужна и какую неожиданную роль в этом играют атомарные коммиты.

Читать далее

OpenClaw присоединился к OpenAI. И почему Claude от Anthropic тоже стоит волноваться

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

OpenAI забирает к себе создателя OpenClaw Питера Штайнбергера, а сам OpenClaw переводят в формат независимого фонда и обещают поддерживать как open-source.
На первый взгляд, обычная кадровая новость. Но на самом деле это сигнал: гонка смещается от тех, у кого умнее модель к тем, у кого агент реально делает работу, и, что самое главное, при этом ему можно доверить доступы.

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

Читать далее

Как я в 16 лет создал свой Pomodoro-таймер: месяц дисциплины и первые пользователи из 7 стран

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

Мне 16 лет. Последние 8 месяцев я учусь на Frontend-разработчика. Я решил проверить свои силы и создать инструмент, которым буду пользоваться сам. Но мой путь начался не с мощного ПК и гигабайтов интернета, а с мечты и обычного смартфона.

Мой путь в программировании начался 26 декабря 2024 года. Это была мечта, к которой я шел 5 лет. На тот момент я был «полным нулем»: у меня не было стабильного интернета и я почти ничего не знал о Frontend. Я записался на курсы, даже не до конца понимая, что это такое.

Первые две недели у меня не было ноутбука, и я писал свой первый код прямо на телефоне. Только спустя время у меня появился ноутбук и нормальный доступ к сети, чтобы узнать: что такое Frontend и какие задачи он решает?

Узнать историю...

Физик проанализировала более 100 000 «исправленных» багов ядра Linux

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели29K

В вашем ядре сейчас есть баги, которые не найдут в течение многих лет. Я знаю это, потому что проанализировала 125 183 из них, каждый в 20-летней git-истории ядра Linux помечен прослеживаемым тегом Fixes:.

Средний баг ядра существует 2,1 года. А некоторые подсистемы намного хуже: драйверы CAN‑шины [шины сети контроллеров] — в среднем 4,2 года, работа с сетью SCTP4,0 года. Самый долгоживущий баг в моём наборе данных — переполнение буфера в ethtool — сохранялся в ядре 20,7 лет. Подробно остановлюсь на утечке памяти из‑за подсчёта ссылок в netfilter, существовавшей 19 лет.

Я создала инструмент, который выявляет 92% исторических багов в отложенном тестовом наборе данных о времени коммита. Вот что я узнала.

Читать далее

Кэш-монтирование или Cache mount в Docker. Использование кэш-монтирования в GitLab CI/CD

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели9.1K

Кэш-монтирование в Docker — это мощный инструмент, который может значительно ускорить процесс сборки образов в CI/CD. Но его правильная настройка в GitLab требует понимания не только работы BuildKit, но и особенностей взаимодействия с различными конфигурациями GitLab Runner — DinD и DooD.

В этой статье я расскажу об устройстве кэш-монтирования в Docker и как его использовать в GitLab CI/CD. На примере простой сборки Python-проекта покажу готовые решения для кэширования зависимостей, чтобы оптимизировать сборку Docker-образов.

Читать далее

Какие две проблемы пытается решить Entire — «GitHub для агентов» от экс-CEO GitHub

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

Entire с его первым тулом под названием CheckPoints решает проблему, которую сам же основатель проекта Томас Домке и создал в Microsoft.

Читать далее

Офлайн режим в Notion и решение конфликтов

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

Привет, Хабр, меня зовут Александр Мачулин, я основатель Gramax, open source системы для ведения документации в подходе Docs as Code с визуальным редактором. Gramax хранит контент в git-репозитории. Это означает, что у пользователей могут возникнуть конфликты при синхронизации изменений. Я считаю, что нагружать пользователей решением конфликтов – не очень хорошо и пытаюсь найти решение для этой задачи.

Читать далее

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

Git в браузере. Расширяем возможности с помощью LFS

Уровень сложностиСложный
Время на прочтение17 мин
Охват и читатели6.7K

Привет, Хабр! Я Паша, разработчик Gramax — Open Source платформы для управления документацией в подходе Docs as Code.

В прошлой статье я рассказывал о том, как мы переводили наше приложение с Isomorphic Git на libgit2, как засунули его в веб-версию приложения при помощи Emscripten и с какими трудностями столкнулись в процессе.

На этот раз — как мы оптимизировали хранение файлов ресурсов каталога (в большинстве случаев, изображений) при помощи Git LFS, тем самым ускорив его клонирование и синхронизацию.

Читать далее

GitHub Copilot CLI: агентный режим и планирование задач

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

Привет, Хабр! Недавно GitHub выкатил крупное обновление Copilot CLI — теперь это не просто подсказчик команд, а полноценный агент, который умеет планировать задачи и вести диалог. Разберём, что нового появилось и как с этим работать безопасно.

Разобрать обновление

Как не держать код на сервере

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели7.5K

Кому эта статья может быть полезна?

Многие сегодня припарковали свои проекты на виртуальных серверах типа vps/vds или физическом сервере. И вот, по каким-то причинам, вы не хотели бы показывать свой код напрямую.

Если вы уже знаете про GitLab runner, Docker и registry – то можно пройти мимо и сберечь свое время. А кто не знает - добро пожаловать. Постараюсь, чтобы было не сложно.

Какие могут быть причины?

Читать далее

Интеграционные тесты: когда UI-автотесты проверяют не только кнопки, но и всю систему целиком

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

Привычные UI‑автотесты часто проверяют отдельные кнопки и формы, но не отвечают на главный вопрос: работает ли система целиком в реальном пользовательском сценарии. В этой статье я расскажу, как мы в TData строим интеграционные тесты для Web UI, которые проходят путь от создания провайдера и кластера до установки компонентов, настройки конфигурации и проверки, что всё действительно поднялось и работает.

Читать далее

Как легко и просто создавать Skills с помощью Agent Skills в Manus

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

Теперь легко и просто можно попробовать поиграться в упаковку скиллов - до всяких платных Claude Code и Clawdbot/Moltbot. Напомню, что это способ превращать удачные сессии с агентом в переиспользуемые сценарии /воркфлоу для агента: один раз настроили, дальше запускаете по команде и получаете результат в том же стиле.

В Manus это можно попробовать и бесплатно. К тому же, вы можете даже скачать Skill, который вы сделали совместно с Manus, тоже совершенно бесплатно.

Я проверила это на простом и полезном кейсе: агрегатор свежих AI-новостей с Reddit, который делает выжимки под Telegram. Ниже по шагам и со скринами.

Читать далее

Пишем свой git: минимальная реализация на Rust

Время на прочтение5 мин
Охват и читатели9.1K

Контроль версий долгое время был для меня «чёрным ящиком»: я не понимал, как именно хранятся файлы, как формируются diff’ы и из чего состоят коммиты. А поскольку я люблю изобретать велосипеды, почему бы не попробовать реализовать git самому?

Читать далее

Метаутопия программистов: как построить государство на базе TypeScript и Git

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

В начале XVI века была издана книга английского юриста и философа Томаса Мора под названием "Утопия", в которой описывалась идеальная по мнению автора структура общества. Название этой книги стало именем нарицательным и дало имя всему жанру подобных трактатов. Книга Мора была далеко не первой: ещё за две тысячи лет до её выхода в свет древнегреческий философ Платон опубликовал трактат "Государство", в котором излагал свои взгляды на общественное устройство. Кто только не создавал своих утопий: например, Карл Маркс с его манифестом коммунизма и диктатурой пролетариата или Карл Поппер с его "Открытым обществом и его врагами". Почему бы не сделать этого и мне?

Китайский философ-даос Лао-Цзы писал, что когда нечто доходит до предела, оно обращается в свою полную противоположность. Из истории нам известно, что любые попытки воплощения различных утопий в жизнь всегда заканчиваются их полной противоположностью - тоталитарными антиутопиями. Поэтому в этом эссе я планирую описать не утопию, которая практически невозможна, а метаутопию - не то, как общество должно быть устроено, а то на основе чего оно должно быть зиждется и как развиваться. Метаутопия в отличие от утопии может быть применима в реальности и полезна для реального общества.

В основании этой метаутопии лежат два инструмента программирования - типизированный язык программирования и система контроля версий. Возьмём для примера в качестве языка программирования TypeScript, а в качестве системы контроля версий - Git. Сегодня на TypeScript пишут и веб-приложения, и мобильные приложения, и программы командной строки, и сервера для приложений. Почему бы не написать на нём государство?

Читать далее
1
23 ...