Команды Git для восстановления коммитов и переноса изменений
Git позволяет отменить локальный коммит, найти потерянный и перенести изменения без нового коммита. В подборке команд под рабочие задачи разобраны эти сценарии и управление отложенными изменениями.
Флаг
#git #терминал
Git позволяет отменить локальный коммит, найти потерянный и перенести изменения без нового коммита. В подборке команд под рабочие задачи разобраны эти сценарии и управление отложенными изменениями.
git reset --soft HEAD~1 отменяет последний коммит, сохраняя изменения подготовленными к следующему. Для уже отправленных и общих коммитов источник рекомендует git revert. Через git reflog можно найти хеш потерянного коммита и создать от него ветку.Флаг
-n у git cherry-pick переносит изменения без создания коммита, чтобы вы могли их доработать. Для stash, временно сохранённых изменений, показаны именование и выборочное применение с сохранением записи или её удалением.#git #терминал
💯1
Forwarded from Нейроканал
Showboat и Rodney помогают показать работу ИИ-агента
Саймон Уиллисон собирает демонстрации кода с помощью двух своих инструментов. Showboat выполняет команды и записывает их вывод в документ. Rodney управляет Chrome из командной строки и делает скриншоты интерфейса.
Эту команду автор предлагает дать агенту: в справке есть всё необходимое, чтобы тот создал документ с демонстрацией новой функции.
Уиллисон замечал и обход механизма: агент напрямую правит текст отчёта. Тогда записанный вывод может расходиться с реальным запуском. Содержимое демонстрации тоже требует проверки.
#ии #инструменты
Саймон Уиллисон собирает демонстрации кода с помощью двух своих инструментов. Showboat выполняет команды и записывает их вывод в документ. Rodney управляет Chrome из командной строки и делает скриншоты интерфейса.
uvx showboat --helpЭту команду автор предлагает дать агенту: в справке есть всё необходимое, чтобы тот создал документ с демонстрацией новой функции.
Уиллисон замечал и обход механизма: агент напрямую правит текст отчёта. Тогда записанный вывод может расходиться с реальным запуском. Содержимое демонстрации тоже требует проверки.
#ии #инструменты
Forwarded from Нейроканал
Вспомните последний раз, когда ИИ сделал для вас рабочий результат: код, тесты, документацию или требования. Как вы его проверяли?
Anonymous Poll
16%
Внимательно разобрал сам
35%
Проверил на практике: тесты, запуск, реальные данные
27%
И разобрал, и проверил на практике
1%
Отдал на ревью коллеге
12%
Не проверял, сразу использовал
5%
Не было такого случая или не помню
3%
Другое (напишу в комментариях)
git range-diff: проверка изменений в коммитах после rebase
Команда
В воспроизводимом упражнении с тремя коммитами при разрешении конфликта намеренно меняют вычитание
Разбор показывает, как сохранить исходную ветку командой
#git #инструменты
Команда
git range-diff сравнивает серии коммитов до и после переноса ветки на новую базу. Одинаковые сообщения в git log не гарантируют, что код сохранился: ручное разрешение конфликта становится частью переписанного коммита.В воспроизводимом упражнении с тремя коммитами при разрешении конфликта намеренно меняют вычитание
x.patch - y.patch на y.patch - x.patch. Ошибка оказывается в коммите про оформление кода.Разбор показывает, как сохранить исходную ветку командой
git branch before-rebase и прочитать результат сравнения: знак = отмечает совпавшие изменения, ! указывает на различия. Два уровня знаков в выводе помогают найти случайную правку внутри изменённого коммита.#git #инструменты
Forwarded from Типичный программист
🧑💻 Какие навыки помогают вам в разработке в 2026 году?
Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно?
Мы решили собрать портрет современного разработчика — и приглашаем вас поделиться своим опытом. Расскажите, какие навыки вам пригодились и как вы используете ИИ. Если обходите его стороной, нам тоже интересно узнать почему.
Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании.
👉 Пройти опрос
Что вы чаще используете в работе? В каких задачах помогает ИИ, а где проще справиться самостоятельно?
Мы решили собрать портрет современного разработчика — и приглашаем вас поделиться своим опытом. Расскажите, какие навыки вам пригодились и как вы используете ИИ. Если обходите его стороной, нам тоже интересно узнать почему.
Опрос анонимный и займёт около 5 минут. Результаты опубликуем в общем большом исследовании.
👉 Пройти опрос
Шпаргалка по GitHub Copilot CLI: история диалога, каталоги и экспорт сессий
GitHub Copilot CLI позволяет управлять работой ИИ-помощника в терминале командами с префиксом
Если Copilot ссылается на прошлую задачу,
В шпаргалке с примерами команд и их вывода есть и экспорт:
#cli #инструменты
GitHub Copilot CLI позволяет управлять работой ИИ-помощника в терминале командами с префиксом
/. Для очистки истории или смены рабочего каталога не нужно каждый раз писать запрос обычным текстом.Если Copilot ссылается на прошлую задачу,
/clear удалит историю текущего диалога. Команда /cwd покажет рабочий каталог, а с указанным путём сменит его. Через /list-dirs можно проверить, к каким директориям у помощника есть доступ.В шпаргалке с примерами команд и их вывода есть и экспорт:
/share file сохраняет историю сессии в Markdown-файл, чтобы передать коллеге ход работы или приложить его к обсуждению задачи.#cli #инструменты
👍1
Logpoints в IntelliJ IDEA: поиск ошибок в gRPC-сервисе без остановки
Logpoints выводят значения в консоль, не приостанавливая программу. Выражения для вывода можно менять без пересборки и повторного развёртывания приложения.
В руководстве по отладке Java-сервиса в Docker показаны подключение отладчика и поиск причины неверной скидки: имя клиента сравнивается без учёта регистра. Затем исправление проверяют без изменения кода сервера.
Обычная точка останова мешает разбору: пока сервер стоит на паузе, истекает срок выполнения gRPC-запроса, заданный клиентом, и сервер отменяет работу. Logpoints позволяют наблюдать за обработкой без такой паузы.
Но выражения выполняются в той же виртуальной машине: тяжёлые вычисления добавляют нагрузку, а побочные эффекты могут менять состояние программы.
#ide #инструменты
Logpoints выводят значения в консоль, не приостанавливая программу. Выражения для вывода можно менять без пересборки и повторного развёртывания приложения.
В руководстве по отладке Java-сервиса в Docker показаны подключение отладчика и поиск причины неверной скидки: имя клиента сравнивается без учёта регистра. Затем исправление проверяют без изменения кода сервера.
Обычная точка останова мешает разбору: пока сервер стоит на паузе, истекает срок выполнения gRPC-запроса, заданный клиентом, и сервер отменяет работу. Logpoints позволяют наблюдать за обработкой без такой паузы.
Но выражения выполняются в той же виртуальной машине: тяжёлые вычисления добавляют нагрузку, а побочные эффекты могут менять состояние программы.
#ide #инструменты
Forwarded from Типичный программист
Общая папка для работы Claude Code и Codex
Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так:
Папка хранит исходные материалы и решения
↓
Индекс указывает, где искать данные для задачи
↓
Claude Code планирует работу
↓
Codex выполняет задачи по его вызову
В описании этого рабочего процесса Бушар объясняет, зачем даёт агенту сведения для конкретной задачи. Начать предлагает с общей папки, короткого индекса и одного повторно используемого скилла.
#ии #инструменты
Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так:
Папка хранит исходные материалы и решения
↓
Индекс указывает, где искать данные для задачи
↓
Claude Code планирует работу
↓
Codex выполняет задачи по его вызову
В описании этого рабочего процесса Бушар объясняет, зачем даёт агенту сведения для конкретной задачи. Начать предлагает с общей папки, короткого индекса и одного повторно используемого скилла.
#ии #инструменты
❤1
Forwarded from Типичный программист
Типичный программист
Общая папка для работы Claude Code и Codex Луи-Франсуа Бушар собрал заметки, инструкции-скиллы, скрипты и итоги встреч в Obsidian. Его связка устроена так: Папка хранит исходные материалы и решения ↓ Индекс указывает, где искать данные для задачи ↓ Claude…
Приходится ли вам копипастить данные и какие именно, когда переходите из одной нейросети в другую?
Anonymous Poll
17%
Код
28%
Описание задачи
14%
Документацию
17%
Результаты работы
20%
Настройки и контекст: историю чатов, промпты, скиллы
50%
Ничего, использую один инструмент
curl: пароль для сервера и пароль для прокси — разные вещи
Получили
При
Если метод заранее неизвестен,
📎 Авторизация в руководстве everything curl
#cli #инструменты
Получили
401? Сервер запрашивает авторизацию через WWW-Authenticate. Для него предназначен --user, который задаёт заголовок Authorization.При
407 пароль нужен HTTP-прокси: ответ содержит Proxy-Authenticate. Здесь используйте --proxy-user, а не повторяйте пароль сервера. Учётные данные прокси передаются в Proxy-Authorization.Если метод заранее неизвестен,
--anyauth сначала проверяет ответ сервера. Для прокси есть отдельный --proxy-anyauth. Basic кодирует пароль в base64, а не шифрует его, поэтому для реальных паролей нужен защищённый транспорт.#cli #инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
Рецепты curl для авторизации и проверки доступа к серверу
curl позволяет воспроизводить запросы из терминала: передавать логин и пароль, сохранять cookies после входа через форму и использовать их в следующих запросах. В подборке команд для загрузки файлов, авторизации и проверки сервисов разобраны эти сценарии с примерами.
Для cookies показана пара параметров:
Отдельный пример посвящён
#инструменты #терминал
curl позволяет воспроизводить запросы из терминала: передавать логин и пароль, сохранять cookies после входа через форму и использовать их в следующих запросах. В подборке команд для загрузки файлов, авторизации и проверки сервисов разобраны эти сценарии с примерами.
Для cookies показана пара параметров:
--cookie-jar сохраняет их в файл, а --cookie читает оттуда. Так можно запросить защищённую страницу после входа.Отдельный пример посвящён
--connect-to: curl подключается к указанному серверу и порту, сохраняя имя исходного узла в заголовках запроса. Это позволяет проверить сервис напрямую, исключив балансировщик как возможную причину ошибки.#инструменты #терминал
GDB: breakpoint и watchpoint отвечают на разные вопросы
Breakpoint останавливает программу в заданном месте: на строке, при входе в функцию или по адресу. Он удобен, когда уже есть подозрительный участок кода. Условие позволяет пропускать остановки, которые не относятся к вашей ошибке.
Watchpoint следит за изменением значения переменной или выражения. Если данные портятся, а место записи неизвестно, он помогает поймать изменение без обхода всех возможных присваиваний.
У watchpoint есть ограничения: аппаратная поддержка зависит от системы, число точек и размер отслеживаемых данных ограничены. Программный вариант выполняет пошаговую проверку и может сильно замедлять приложение. Не считайте наблюдение за любым выражением бесплатным.
📎 Breakpoint и watchpoint в руководстве GDB
#инструменты
Breakpoint останавливает программу в заданном месте: на строке, при входе в функцию или по адресу. Он удобен, когда уже есть подозрительный участок кода. Условие позволяет пропускать остановки, которые не относятся к вашей ошибке.
Watchpoint следит за изменением значения переменной или выражения. Если данные портятся, а место записи неизвестно, он помогает поймать изменение без обхода всех возможных присваиваний.
У watchpoint есть ограничения: аппаратная поддержка зависит от системы, число точек и размер отслеживаемых данных ограничены. Программный вариант выполняет пошаговую проверку и может сильно замедлять приложение. Не считайте наблюдение за любым выражением бесплатным.
#инструменты
Please open Telegram to view this post
VIEW IN TELEGRAM
GDB: отладка программ на C на двух примерах
GDB позволяет остановить программу на нужной строке и посмотреть значения переменных, вместо того чтобы добавлять вызовы printf и пересобирать код после каждой правки. В практическом руководстве разобраны две ошибки с исходниками и командами отладчика.
В первом примере цикл выходит за границы массива и портит среднее значение. Условная точка останова останавливает выполнение при индексе 5, чтобы увидеть лишнее чтение. Во втором программа падает при передаче нулевого указателя в strlen. Стек вызовов показывает, откуда пришёл этот аргумент.
Разбор начинается со сборки с флагом
#инструменты #терминал
GDB позволяет остановить программу на нужной строке и посмотреть значения переменных, вместо того чтобы добавлять вызовы printf и пересобирать код после каждой правки. В практическом руководстве разобраны две ошибки с исходниками и командами отладчика.
В первом примере цикл выходит за границы массива и портит среднее значение. Условная точка останова останавливает выполнение при индексе 5, чтобы увидеть лишнее чтение. Во втором программа падает при передаче нулевого указателя в strlen. Стек вызовов показывает, откуда пришёл этот аргумент.
Разбор начинается со сборки с флагом
-g, который связывает машинный код со строками исходника. В конце есть шпаргалка команд и таблица решений проблем настройки, например когда отладчик не показывает переменные.#инструменты #терминал
Forwarded from Точка входа в программирование
Вебинар в прямом эфире уже идёт десять минут. Вы только открыли трансляцию. Что для вас важнее всего?
Anonymous Poll
13%
Минимальная задержка от живого момента.
10%
Стабильное разрешение картинки.
15%
Ровный звук.
63%
Возможность отмотать назад и вернуться в эфир.
git rerere: повторное использование решений конфликтов
Git rerere запоминает, как вы разрешили конфликт, и при повторении того же содержимого с обеих сторон подставляет сохранённое решение в файл. Включить его для текущего репозитория можно командой
В практикуме с командами и ожидаемым выводом конфликт в config.yml сначала решают при слиянии веток, затем отменяют слияние и выполняют rebase, перенос коммитов на другую основу. Git применяет записанное решение и останавливается для проверки.
По умолчанию файл не добавляется в индекс: нужно проверить изменения через
#git #инструменты
Git rerere запоминает, как вы разрешили конфликт, и при повторении того же содержимого с обеих сторон подставляет сохранённое решение в файл. Включить его для текущего репозитория можно командой
git config rerere.enabled true.В практикуме с командами и ожидаемым выводом конфликт в config.yml сначала решают при слиянии веток, затем отменяют слияние и выполняют rebase, перенос коммитов на другую основу. Git применяет записанное решение и останавливается для проверки.
По умолчанию файл не добавляется в индекс: нужно проверить изменения через
git diff, выполнить git add и продолжить операцию. Если окружающий код изменился, прежнее решение может оказаться неверным.#git #инструменты
❤1🔥1
Что проверить после переноса Postman-коллекции в Bruno
Bruno переводит знакомые вызовы
В руководстве по конвертации советуют найти оставшиеся обращения к Postman API, затем запустить коллекцию целиком. Импортированные тесты находятся в Post Response, а результаты отображаются в панели Tests.
Отдельно проверьте переменные: после импорта значения имеют строковый тип. Сравнение числа с такой переменной не сработает без настройки типа или преобразования.
Есть и разница в порядке скриптов: Bruno по умолчанию выполняет post-response от запроса к папке и коллекции. Если тесты зависят от обратного порядка, нужен sequential flow.
Перед коммитом коллекции проверьте токены. Запись через
#инструменты #api
Bruno переводит знакомые вызовы
pm.* в свой API при импорте. Но неподдерживаемые строки остаются в скрипте и могут упасть только при запуске запроса.В руководстве по конвертации советуют найти оставшиеся обращения к Postman API, затем запустить коллекцию целиком. Импортированные тесты находятся в Post Response, а результаты отображаются в панели Tests.
Отдельно проверьте переменные: после импорта значения имеют строковый тип. Сравнение числа с такой переменной не сработает без настройки типа или преобразования.
Есть и разница в порядке скриптов: Bruno по умолчанию выполняет post-response от запроса к папке и коллекции. Если тесты зависят от обратного порядка, нужен sequential flow.
Перед коммитом коллекции проверьте токены. Запись через
bru.setEnvVar() сохраняет значение в файл окружения; секреты нужно хранить отдельно.#инструменты #api
Zsh: как поставить файл 2 перед файлом 10
При раскрытии
Адам Джонсон показывает числовую сортировку через квалификатор n. Сначала проверьте порядок файлов, затем передайте их ImageMagick:
Теперь числовые части имён сравниваются как числа. Для обратного порядка используйте
Если такое поведение нужно для всех glob-шаблонов, в Zsh можно включить:
Глобальная настройка меняет порядок и в других командах, поэтому для разовой задачи удобен квалификатор в конкретном шаблоне. Этот синтаксис относится к Zsh; в Bash и PowerShell он не работает.
#терминал #zsh
При раскрытии
*.png оболочка сортирует имена посимвольно. Поэтому Page 10.png может оказаться перед Page 2.png. Это легко пропустить при сборке PDF из изображений.Адам Джонсон показывает числовую сортировку через квалификатор n. Сначала проверьте порядок файлов, затем передайте их ImageMagick:
print -l *.png(n)
magick *.png(n) document.pdf
Теперь числовые части имён сравниваются как числа. Для обратного порядка используйте
*.png(nOn).Если такое поведение нужно для всех glob-шаблонов, в Zsh можно включить:
setopt numeric_glob_sort
Глобальная настройка меняет порядок и в других командах, поэтому для разовой задачи удобен квалификатор в конкретном шаблоне. Этот синтаксис относится к Zsh; в Bash и PowerShell он не работает.
#терминал #zsh
❤1✍1
Delta: ревью с контекстом работы агента
Дифф показывает изменения, но не всегда объясняет, почему автор выбрал именно это решение. В публичной бете Delta коллегу можно пригласить в тред с агентом, чтобы он увидел обсуждение и продолжил работу с тем же контекстом.
Для ревью создаётся отдельный тред с изолированной копией рабочих деревьев. Ревьюер может исследовать код, пробовать исправления и обсуждать их с агентом, не меняя исходную рабочую копию. Правки затем можно перенести обратно.
В основе — DeltaDB: она сохраняет редактирования между коммитами вместе с сообщениями людей и агентов. Коммиты остаются точками, которые можно отправлять в обычный Git.
Переводить всю команду сразу не требуется: треды Delta можно прикладывать к привычным GitHub PR. В статье есть демонстрация пути от исправления до ревью и слияния. Часть возможностей ещё находится в планах развития.
#инструменты #codereview
Дифф показывает изменения, но не всегда объясняет, почему автор выбрал именно это решение. В публичной бете Delta коллегу можно пригласить в тред с агентом, чтобы он увидел обсуждение и продолжил работу с тем же контекстом.
Для ревью создаётся отдельный тред с изолированной копией рабочих деревьев. Ревьюер может исследовать код, пробовать исправления и обсуждать их с агентом, не меняя исходную рабочую копию. Правки затем можно перенести обратно.
В основе — DeltaDB: она сохраняет редактирования между коммитами вместе с сообщениями людей и агентов. Коммиты остаются точками, которые можно отправлять в обычный Git.
Переводить всю команду сразу не требуется: треды Delta можно прикладывать к привычным GitHub PR. В статье есть демонстрация пути от исправления до ревью и слияния. Часть возможностей ещё находится в планах развития.
#инструменты #codereview
Tokens Brücke: из Figma в npm через проверяемый PR
У GitButler дизайн-токены живут в отдельном npm-пакете: его используют приложение и сайт. Даже изменение одного цвета должно пройти экспорт, сборку CSS и выпуск версии.
В разборе этого процесса Павел Лаптев использует плагин Tokens Brücke. Кнопка Push to server отправляет JSON токенов в GitHub PR, а Actions собирают CSS и показывают изменения. После ревью и слияния другой workflow публикует пакет и тег.
У CLI появился и режим работы с готовым снимком переменных:
Он преобразует входные данные в формат DTCG. Сам снимок нужно получить отдельно.
Автор сначала запускал цепочку через двух ИИ-агентов, но для повторных выпусков выбрал кнопку и CI. Агенты помогли подготовить CLI и workflows; проверка диффа перед выпуском осталась за человеком.
#инструменты #автоматизация
У GitButler дизайн-токены живут в отдельном npm-пакете: его используют приложение и сайт. Даже изменение одного цвета должно пройти экспорт, сборку CSS и выпуск версии.
В разборе этого процесса Павел Лаптев использует плагин Tokens Brücke. Кнопка Push to server отправляет JSON токенов в GitHub PR, а Actions собирают CSS и показывают изменения. После ревью и слияния другой workflow публикует пакет и тег.
У CLI появился и режим работы с готовым снимком переменных:
npx tokens-bruecke --input snapshot.json --output tokens.json
Он преобразует входные данные в формат DTCG. Сам снимок нужно получить отдельно.
Автор сначала запускал цепочку через двух ИИ-агентов, но для повторных выпусков выбрал кнопку и CI. Агенты помогли подготовить CLI и workflows; проверка диффа перед выпуском осталась за человеком.
#инструменты #автоматизация
❤1
Bruno: локальный сервер API из примеров ответов
Бэкенд ещё не готов, а в интерфейсе уже нужно проверить список, пустое состояние и ошибку. В Bruno для этого можно сохранить примеры ответов и поднять локальный сервер, который их возвращает.
В руководстве команды Bruno показан путь от коллекции запросов до работающей заглушки. Для примера задаются статус, заголовки и тело. Его можно написать вручную или сохранить из настоящего ответа API.
Из примеров создаётся mock server. Для одного метода и пути можно подготовить несколько ответов и правила их выбора. Запросы видны в журнале, а определения хранятся на диске рядом с коллекцией — их удобно передавать через Git.
Mock Servers пока в бета-версии. Такой сервер возвращает заданные ответы, не хранит данные и не исполняет бизнес-логику. При закрытии Bruno он останавливается; после перезапуска приложения его нужно запустить снова.
#api #тестирование
Бэкенд ещё не готов, а в интерфейсе уже нужно проверить список, пустое состояние и ошибку. В Bruno для этого можно сохранить примеры ответов и поднять локальный сервер, который их возвращает.
В руководстве команды Bruno показан путь от коллекции запросов до работающей заглушки. Для примера задаются статус, заголовки и тело. Его можно написать вручную или сохранить из настоящего ответа API.
Из примеров создаётся mock server. Для одного метода и пути можно подготовить несколько ответов и правила их выбора. Запросы видны в журнале, а определения хранятся на диске рядом с коллекцией — их удобно передавать через Git.
Mock Servers пока в бета-версии. Такой сервер возвращает заданные ответы, не хранит данные и не исполняет бизнес-логику. При закрытии Bruno он останавливается; после перезапуска приложения его нужно запустить снова.
#api #тестирование
❤3👎1