git filter-repo --invert-paths --path <file> переписывает коммиты, но сначала отзовите утёкший ключ — filter-branch устарел, а переписывание истории само по себе не отменяет утечку.
Блог
Блог CliAI
Свежие новости, разборы и инструкции по экосистеме CliAI.
-
2026-06-01
Удалить пароль из истории git
-
2026-05-29
Как оставить команду работать после выхода из SSH
nohup подходит, если вы знаете заранее; disown спасает уже запущенный процесс; tmux, setsid и systemd-run закрывают остальные случаи — в зависимости от ситуации.
-
2026-05-27
kill -9 не работает? Почему процесс не умирает
kill -9 бессилен против зомби, процессов в D-state и тех, кого перезапускает супервизор. Как отличить причину и что реально убивает процесс в каждом случае.
-
2026-05-25
Фильтровать JSON в командной строке через jq
jq '.field' достаёт значение из JSON; -r убирает кавычки, select() фильтрует по условию, а @csv превращает ответ API в строки для таблицы.
-
2026-05-22
Какая папка съела диск? du с сортировкой по размеру
du -h --max-depth=1 | sort -rh и спуск по одному уровню за раз. Плюс флаг -x, который не даёт du засчитать в ответ чужие файловые системы.
-
2026-05-20
df говорит, что диск полон, du — что нет. Кто прав?
Оба. Место занимают файлы, удалённые при живом процессе, который держит их открытыми, — либо кончились иноды, а не байты. Как отличить одно от другого за четыре команды.
-
2026-05-18
Команда shell из обычного текста: как это работает
Описываете задачу словами, получаете точную команду, читаете её и запускаете. Что умеют такие инструменты, где ломаются и чем отличаются от ИИ-агента для кода.
-
2026-05-15
sed -i не работает на Mac? Различия BSD и GNU
Ошибка «invalid command code» означает, что в macOS стоят BSD-утилиты, а не GNU. Шесть различий во флагах, которые ломают linux-скрипты на маке, и фикс для каждого.
-
2026-05-13
Docker съел диск: как вернуть место
Сначала docker system df, потом prune. Что именно удаляет каждый prune, почему тома по умолчанию выживают и как не снести образ, который ещё нужен.
-
2026-05-10
Отменить последний коммит в git, сохранив изменения
git reset --soft HEAD~1, если не пушили, и git revert, если уже запушили. Разница между soft, mixed и hard и как reflog возвращает всё назад при неверном выборе.
-
2026-05-08
Найти процесс, у которого память только растёт
Утечка — это не «много памяти», а память, которая не возвращается. Снимайте RSS во времени через pidstat, подтверждайте через pmap и отличайте утечку от кэша.
-
2026-05-06
Вытащить колонку из CSV через awk (и когда не надо)
awk -F, '{print $2}' работает, пока в поле не окажется запятая внутри кавычек — тогда все колонки после неё съезжают, а сумма молча становится неверной.