В этой статье я расскажу об одном полезном, но малоизвестном приеме работы с git — как можно легко создать коммит, используя дерево из другого коммита. Проще говоря, как получить нужное состояние проекта на какой-либо ветке, если это состояние уже когда-то и где-то было в репозитории раньше. Будет приведено несколько примеров того, как это позволяет элегантно решать некоторые практические задачи. И в частности я расскажу о найденном мной методе, который позволяет значительно упростить исправление множественных конфликтов при rebase. Кроме того, эта статья — отличный способ понять на практике, что из себя представляет коммит в git-е.
Рубрика «Системы управления версиями» - 5
Как и зачем красть деревья в git
2018-12-20 в 6:35, admin, рубрики: commit, conflict, Git, merge, rebase, tree, Системы управления версиямиВышел GitLab 11.5 с панелями управления для операторов и специалистов по безопасности и контролем доступа GitLab Pages
2018-12-06 в 8:47, admin, рубрики: CD, ci, ci/cd, continuous delivery, continuous deployment, continuous integration, devops, Git, gitlab, open source, softmart, системы сборки, Системы управления версиями
Панель управления безопасностью в рамках группы
Разработчики уже давно используют GitLab как инструмент для обеспечения безопасности своего кода. Теперь GitLab дает больше прав и возможностей специалистам, отвечающим за безопасность, так что они могут использовать его для повышения безопасности приложений и обеспечения совместимости. С релизом 11.5, новая панель безопасности группы собирает воедино всю информацию, которая может потребоваться специалистам по безопасности, в удобном виде, разработанном специально для них. Эта панель содержит новые возможности отображения: общий обзор информации о безопасности разных проектов, а также углубленная информация о каждом из них. В 11.5 мы начинаем с отчетов SAST, в дальнейших релизах будем добавлять новые отчеты на эту панель. Наша цель — создать удобный инструмент, единую панель безопасности, которую специалисты по безопасности смогут использовать вместо переключения между множеством инструментов.
Управление своими модулями для CMS c использованием composer
2018-11-08 в 8:16, admin, рубрики: cms, composer, modules, php, Системы управления версиями, управление проектами и командой, управление разработкойЗдравствуйте, друзья! Появление популярного менеджера зависимостей в PHP — является одним из важнейших событий в жизни PHP-сообщества. Composer разделил время на "до" — когда наши самописные библиотеки лежали в zip-архивах или просто разбросаны по папкам и копировались "ручками", лишь в единичных случаях, использовался git или PEAR, и "после" — когда мы начали использовать composer. Но что делать если вы работаете с определенной CMS, а она не "знает" что такое composer?
Git subtree в деталях
2018-11-07 в 14:07, admin, рубрики: Git, git hooks, git-receive-pack, git-subrepo, githooks, github, pre-receive, Системы управления версиямиПринимая решение об использовании того или иного средства в собственных проектах, инженеру приходится не только изучать сопроводительную документацию, но и проводить серию экспериментов для того, чтобы избежать потенциальных проблем в будущем. Если же речь идет о CM-политике, рассчитанной на длительную перспективу, цена ошибки выбора становится достаточно высока.
Целью настоящей работы является практическое изучение средства управления поддеревьями Git.
Начиная с ревизии 1.7.11 upstream-репозиторий Git, в каталоге contrib/subtree, содержит средство автоматизации работы с поддеревьями.
Сервис git-subtree(1) фактически является полезной надстройкой, использующей функции git-read-tree(1) и git-write-tree(1). Поэтому ссылки в командах git-subtree(1) add/pull/push:
git subtree add --prefix=<subdir> <remote> <ref>
могут представлять собой, как имена веток, так и имена тегов удаленного репозитория.
Кроме того, если заранее добавить удаленный репозиторий в конфигурационный файл локального репозитория .git/config, с помошью команды:
bash-4.4$ git remote add build-system ../../remote/build-system.git
где build-system является именем удаленного репозитория ../../remote/build-system.git, то в дальнейшем, при использовании команд git-subtree(1) add/pull/push, мы сможем ссылаться на upstream-репозиторий remote/build-system.git по имени.
На данный момент git-subtree(1) практически не развивается, а лишь поддерживается в актуальном состоянии для текущей степени развития проекта Git.
Однако git-subtree(1) является наиболее популярным и мощным средством работы с поддеревьями.
Вышел GitLab 11.4 с ревью мерж-реквестов и подключаемыми фичами
2018-11-06 в 14:04, admin, рубрики: CD, ci, ci/cd, continuous delivery, continuous deployment, continuous integration, devops, Git, gitlab, open source, softmart, системы сборки, Системы управления версиями
Мы рады представить новый релиз GitLab 11.4 с долгожданными обновлениями, призванными помочь командам работать эффективнее. Большинство команд, применяющих DevOps, стремятся к сокращению времени цикла поставки. Поэтому разработчики всегда рады улучшениям, которые уменьшат количество работы и потери во времени, так как за счет этого ускоряется поставка продукта и повышаются бизнес-показатели.
Git Subrepo
2018-11-01 в 11:01, admin, рубрики: Git, git-subrepo, github, Системы управления версиямиПроект git-subrepo существует достаточно давно, однако упоминаний о нем незаслуженно мало. Автором git-subrepo является Ingy döt Net.
Если посмотреть на историю комитов master-ветки проекта, то может показаться, что проект остановился в развитии 2 года назад. Однако работы над проектом ведутся и хочется надеяться, что скоро будет выпущена версия 0.4.0.
Важным свойством данного средства является то, что на стороне пользователя нет необходимости устанавливать git-subrepo до тех пор, пока пользователь не решит делать комиты в upstream-репозитории подпроектов. Кроме того, пользователь получает полностью готовое и настроенное дерево исходного кода в момент копирования основного репозитория посредством стандартной команды git-clone(1).
Вышел GitLab 11.3 с репозиторием Maven и защищенными окружениями
2018-10-09 в 11:39, admin, рубрики: CD, ci, ci/cd, continuous delivery, continuous deployment, continuous integration, devops, Git, gitlab, open source, softmart, системы сборки, Системы управления версиями
С новым релизом GitLab 11.3 мы рады представить вам поддержку репозиториев Maven, владельцев кода (Code Owners), защищенные окружения и прогнозы для эпиков. Все это поможет автоматизировать управление окружениями и кодом, что позволит разработчикам на Java быть еще эффективнее.
Правило 10:1 в программировании и писательстве
2018-08-29 в 10:45, admin, рубрики: atlas, express.js, Git, jquery, mysql, terraform, terratest, Wirex, Блог компании Wirex, дедлайн, Программирование, Системы управления версиями, сроки, Статистика в ITВ этой статье автор анализирует количество времени, которое тратится на написание книг или программного кода, и приходит к интересной закономерности. Ее можно применять для планирования сроков работы над проектами.
Закон Хофштадтера: Любое дело всегда длится дольше, чем ожидается, даже если учесть закон Хофштадтера.
— Дуглас Хофштадтер, Гёдель, Эшер, Бах
У написания прозы и кода есть много общего. Но самое заметное сходство, вероятно, заключается в том, что ни писатели, ни программисты не могут закончить свою работу вовремя. Писатели славятся отъявленной привычкой срывать сроки. Программисты заслужили репутацию людей, чьи результаты всегда серьезно отличаются от первоначальных расчетов. Возникает вопрос: почему?
Сегодня у меня появилась идея, как можно на него ответить. И мои находки меня поразили.
Изучая свои книги
Обе свои книги, Привет, стартап и Terraform: запускаем и работаем, я написал в среде для создания книг Atlas, которая предусматривает управление всем контентом с помощью Git. Это означает, что каждая строчка текста, каждая правка и каждое изменение были зафиксированы в коммит-логе Git.
Проверим, сколько же усилий было затрачено на написание двух книг.
Привет, стартап
Начнем с моей первой книги Привет, стартап. В ней 602 страницы и примерно 190 тыс. слов. Я запустил cloc
в git-репозитории Hello, Startup и получил следующие результатыЧитать полностью »
Продвинутое использование Гита или как выйти на пенсию на полгода раньше?
2018-08-22 в 6:51, admin, рубрики: Git, oh-my-zsh, tig, zsh, Системы управления версиями
Не знаю, на каком языке программирования вы пишете, но уверен, что используете Гит при разработке. Инструментов для сопровождения разработки становится всё больше, но даже самый маленький тестовый проект, я неизменно начинаю с команды git init
. А в течение рабочего дня набираю в среднем ещё 80 команд, обращаясь к этой системе контроля версий.
Я потратил кучу нервов, когда стал переучиваться на десятипальцевый метод печати. В итоге это стало самым правильным решением по улучшению личного рабочего процесса. В числе следующих по важности оптимизаций стоит углубленное освоение Гита.
На Хабр написано много статей о Гите, но они не уходят дальше официальной документации, а упрощать работу авторы предлагают самописными костылями. Я уверен, что изучать Гит нужно на конкретных примерах задач, а повышать эффективность работы с ним – стандартизированными средствами.
Кому будет полезна эта статья?
Вы уже освоили джентльменский набор Гита и готовы двигаться дальше? Существует 2 пути:
- Освоить сокращённые команды – алиасы. Они почти всегда составлены мнемонически и легко запоминаются. Забыть оригиналы команд проблематично, я легко их набираю, когда это требуется. Плюс не сбиваюсь с мысли, проверяя что-то в Гите в процессе написания кода.
- Узнать о дополнительных флагах к командам, а также их объединении между собой. Я понимаю, что кто-то ненавидит сокращения. Для вас тоже есть интересный материал в статье – как повысить полезность и удобство вывода команд, а также как решать не самые тривиальные, но часто встречающиеся на практике задачи.
Посвятите описанным в статье экспериментам пару часов сегодня, и сэкономьте по приблизительным расчётам полгода рабочей жизни.
Добро пожаловать под кат!
GitLab для Continuous Delivery проекта на технологиях InterSystems: Контейнеры
2018-08-21 в 5:26, admin, рубрики: Git, git workflow, github, gitlab, gitlab ci, intersystems, intersystems cache, intersystems ensemble, intersystems iris, Блог компании InterSystems, контейнер, контейнеры, контейнеры docker, Системы управления версиями, управление разработкойЭта статья — продолжение статьи про организацию процессов Continuous Integration / Continuous Delivery, автоматизирующих сборку, тестирование и доставку приложений применимо к решениям на платформе InterSystems.
Рассмотрим такие темы как:
- Контейнеры 101
- Контейнеры на разных этапах цикла разработки ПО
- Continuous Delivery с контейнерамиЧитать полностью »