простымисловами: Как «откатить» последний коммит в Git
Существует несколько способов сделать это. Давайте рассмотрим каждый из них:
1. Вернуть изменения в рабочие файлы, но убрать коммит из истории
Если вы хотите переделать сообщение или добавить файлы, используйте
2. Убрать коммит из истории, но оставить изменения «распакованными» (не в индексе)
Если нужно сначала ещё раз глянуть на файлы, а потом решать, что с ними делать:
3. Полностью стереть и коммит, и изменения
Если коммит «не тот» и вам не нужны даже изменения:
Коммит уже ушёл на сервер (GitHub, GitLab):
а) Историю изменять нельзя (например, в общей ветке)
Используйте «отменяющий» коммит:
б) Историю нужно перезаписать и вы уверены, что можно force-push
Такой подход стирает коммит на сервере. Договоритесь с командой, чтобы никто не успел на основе старой истории создать новые коммиты.
Чтобы точно избежать проблем, воспользуйтесь этим коротким чек-листом перед «откатом»:
1. Проверьте, пушили ли вы коммит.
2. Выберите подходящее действие:
—
—
—
—
3. При force-push предупредите коллег!
#git
❗️ Важно. Прежде чем что-то отменять, убедитесь, что понимаете, нужно ли изменять историю и синхронизирован ли ваш коммит с удалённым репозиторием (GitHub, GitLab и т. д.). Для приватных веток это обычно безопасно, но в общей ветке лучше быть осторожным.
Существует несколько способов сделать это. Давайте рассмотрим каждый из них:
1. Вернуть изменения в рабочие файлы, но убрать коммит из истории
Если вы хотите переделать сообщение или добавить файлы, используйте
git reset --soft HEAD~1
. Он убирает «снимок» последнего коммита, но все ваши изменения остаются в индексе (staging). Дальше можно поправить файлы, написать новое сообщение и закоммитить снова.2. Убрать коммит из истории, но оставить изменения «распакованными» (не в индексе)
Если нужно сначала ещё раз глянуть на файлы, а потом решать, что с ними делать:
git reset --mixed HEAD~1
или просто git reset HEAD~1
. Он удаляет последний коммит, а файлы раскладывает в рабочую директорию. Индекс очищен — придётся снова добавлять нужные файлы через git add
.3. Полностью стереть и коммит, и изменения
Если коммит «не тот» и вам не нужны даже изменения:
git reset --hard HEAD~1
. Он возвращает ветку и рабочую директорию к состоянию до коммита. Восстановить потом будет непросто, поэтому используйте осторожно.Коммит уже ушёл на сервер (GitHub, GitLab):
а) Историю изменять нельзя (например, в общей ветке)
Используйте «отменяющий» коммит:
git revert HEAD
. Git создаст новый коммит, который инвертирует изменения последнего. История остаётся линейной, а коллегам не нужно ничего форс-пушить.б) Историю нужно перезаписать и вы уверены, что можно force-push
git reset --hard HEAD~1
git push --force # или --force-with-lease, чтобы не затереть чужие коммиты
Такой подход стирает коммит на сервере. Договоритесь с командой, чтобы никто не успел на основе старой истории создать новые коммиты.
Чтобы точно избежать проблем, воспользуйтесь этим коротким чек-листом перед «откатом»:
1. Проверьте, пушили ли вы коммит.
2. Выберите подходящее действие:
—
reset --soft
— оставить всё в индексе;—
reset --mixed
— убрать из индекса, но сохранить файлы;—
reset --hard
— удалить всё;—
revert
— отменить «по-честному», если история уже общая.3. При force-push предупредите коллег!
#git
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Когда строки тормозят: как колоночные базы данных ускоряют аналитику
В традиционных базах данных информация хранится построчно, что затрудняет выполнение сложных запросов на больших объёмах данных. Колоночные базы данных решают эту проблему, храня данные по колонкам, что позволяет:
— ускорить выборки, обрабатывая только нужные колонки;
— эффективно сжимать данные, так как каждая колонка содержит однотипные значения;
— быстро добавлять или удалять колонки без переработки всей таблицы.
Однако стоит учитывать, что обновление и удаление данных в колоночных базах может быть более ресурсоёмким по сравнению со строчными базами.
Подробнее об этом можно почитать в статье, которую недавно выложили в нашей флудилке.
#базыданных #аналитика #производительность
В традиционных базах данных информация хранится построчно, что затрудняет выполнение сложных запросов на больших объёмах данных. Колоночные базы данных решают эту проблему, храня данные по колонкам, что позволяет:
— ускорить выборки, обрабатывая только нужные колонки;
— эффективно сжимать данные, так как каждая колонка содержит однотипные значения;
— быстро добавлять или удалять колонки без переработки всей таблицы.
Однако стоит учитывать, что обновление и удаление данных в колоночных базах может быть более ресурсоёмким по сравнению со строчными базами.
Подробнее об этом можно почитать в статье, которую недавно выложили в нашей флудилке.
#базыданных #аналитика #производительность
Как превратить аудиозапись встречи в структурированный отчёт с помощью Python и ИИ
Порой после онлайн-встречи сложно вспомнить, кто что сказал и какие задачи были поставлены. В статье представлен пошаговый гайд по созданию Python-приложения, которое:
— распознаёт речь с аудиозаписей с помощью модели Whisper-1;
— извлекает ключевые моменты и задачи, обсуждённые на встрече, используя Claude 3.5 Sonnet;
— формирует структурированный отчёт в формате PDF.
Да, сейчас существуют готовые решения. Но помогут ли они вам прокачать навыки программирования? Вряд ли. А тут используются API BotHub и библиотеки openai, fpdf, dotenv, подробно описан процесс настройки окружения, взаимодействия с API и обработки ошибок. В общем, мастхэв.
#python #ии #продуктивность
Порой после онлайн-встречи сложно вспомнить, кто что сказал и какие задачи были поставлены. В статье представлен пошаговый гайд по созданию Python-приложения, которое:
— распознаёт речь с аудиозаписей с помощью модели Whisper-1;
— извлекает ключевые моменты и задачи, обсуждённые на встрече, используя Claude 3.5 Sonnet;
— формирует структурированный отчёт в формате PDF.
Да, сейчас существуют готовые решения. Но помогут ли они вам прокачать навыки программирования? Вряд ли. А тут используются API BotHub и библиотеки openai, fpdf, dotenv, подробно описан процесс настройки окружения, взаимодействия с API и обработки ошибок. В общем, мастхэв.
#python #ии #продуктивность
❤2
7 самых нелепых хакерских атак в истории
В мире кибербезопасности не все атаки — дело рук гениев. Иногда злоумышленникам даже не нужно сильно напрягаться. А бывает, что цель взлома настолько тупа, что в это трудно поверить. В этом материале собраны семь самых нелепых хакерских атак:
— взлом казино через термометр в аквариуме;
— загрузка собственных отпечатков пальцев в систему безопасности;
— воспроизведение AC/DC на ядерном объекте Ирана;
— соискатель, взломавший Marriott, чтобы получить работу;
— взлом дорожных знаков с сообщением о нападении Годзиллы;
— «этичный хакер», сливавший данные клиентов;
— кража топлива с АЗС с помощью пульта и пароля «0000».
Какая из этих историй вас удивила больше всего?
#кибербезопасность #хакеры
В мире кибербезопасности не все атаки — дело рук гениев. Иногда злоумышленникам даже не нужно сильно напрягаться. А бывает, что цель взлома настолько тупа, что в это трудно поверить. В этом материале собраны семь самых нелепых хакерских атак:
— взлом казино через термометр в аквариуме;
— загрузка собственных отпечатков пальцев в систему безопасности;
— воспроизведение AC/DC на ядерном объекте Ирана;
— соискатель, взломавший Marriott, чтобы получить работу;
— взлом дорожных знаков с сообщением о нападении Годзиллы;
— «этичный хакер», сливавший данные клиентов;
— кража топлива с АЗС с помощью пульта и пароля «0000».
Какая из этих историй вас удивила больше всего?
#кибербезопасность #хакеры
🔥4
Forwarded from Веб-страница
Как выучить CSS и HTML и стать фронтендером бесплатно, не покупая курсы от онлайн-школ
Можно ли выучить CSS и HTML и стать фронтендером бесплатно, не покупая курсы от онлайн-школ? Узнали у экспертов, какими источниками пользоваться, чтобы начать карьеру во фронтенде: https://tproger.ru/articles/kak-besplatno-vyuchit-html-i-css
#фронтенд
Можно ли выучить CSS и HTML и стать фронтендером бесплатно, не покупая курсы от онлайн-школ? Узнали у экспертов, какими источниками пользоваться, чтобы начать карьеру во фронтенде: https://tproger.ru/articles/kak-besplatno-vyuchit-html-i-css
#фронтенд
🔥4❤2🌭1
Гайд: Как использовать ChatGPT, чтобы стать программистом
Если вы только начинаете путь в разработке, ощущение «не понимаю ничего» может преследовать каждый день. Иногда нужен кто-то, кто объяснит проще, подскажет, где ошибка, и не осудит за глупый вопрос.
В этой статье — о том, как использовать ChatGPT в обучении программированию с умом.
Что спрашивать? Как ставить задачи? Чем он может заменить ментора, а в чём точно не стоит полагаться на ИИ?
Практичные советы, примеры и важные нюансы, которые помогут использовать нейросеть не просто как генератор кода, а как учебный инструмент.
Если вы только начинаете путь в разработке, ощущение «не понимаю ничего» может преследовать каждый день. Иногда нужен кто-то, кто объяснит проще, подскажет, где ошибка, и не осудит за глупый вопрос.
В этой статье — о том, как использовать ChatGPT в обучении программированию с умом.
Что спрашивать? Как ставить задачи? Чем он может заменить ментора, а в чём точно не стоит полагаться на ИИ?
Практичные советы, примеры и важные нюансы, которые помогут использовать нейросеть не просто как генератор кода, а как учебный инструмент.
❤3😁2☃1
Конец эры ручного кода: как вайб-кодинг изменит ИТ–индустрию
Сегодня программирование меняется — и на глазах. Всё больше задач берут на себя ИИ-ассистенты: они предлагают куски кода, исправляют баги, тестируют.
Вайб-кодинг — это не модный термин. Это новый способ писать код, когда разработчик задаёт направление, а ИИ дописывает детали. Это может кардинально изменить и то, как мы учимся, и то, как строим карьеру в IT.
В материале — размышления о том:
— как изменится роль начинающих разработчиков;
— почему важно не терять контроль над кодом, даже если его пишет нейросеть;
— какие новые навыки становятся важнее, чем знание синтаксиса наизусть.
Для тех, кто только входит в профессию, это не повод паниковать, а шанс адаптироваться раньше других.
#вайбкодинг #будущееразработки #ai
Сегодня программирование меняется — и на глазах. Всё больше задач берут на себя ИИ-ассистенты: они предлагают куски кода, исправляют баги, тестируют.
Вайб-кодинг — это не модный термин. Это новый способ писать код, когда разработчик задаёт направление, а ИИ дописывает детали. Это может кардинально изменить и то, как мы учимся, и то, как строим карьеру в IT.
В материале — размышления о том:
— как изменится роль начинающих разработчиков;
— почему важно не терять контроль над кодом, даже если его пишет нейросеть;
— какие новые навыки становятся важнее, чем знание синтаксиса наизусть.
Для тех, кто только входит в профессию, это не повод паниковать, а шанс адаптироваться раньше других.
#вайбкодинг #будущееразработки #ai
🥰3😁3👎1
Regexp Garden: учим RegEx играя в сад
Регулярные выражения часто кажутся страшными, но это зря. Этот интерактивный мини-гейм помогает учиться RegEx, словно поливать нужные растения в саду:
— вы получаете сад и задачу — например, «полить розы между строк А и Б»;
— вместо того чтобы бежать по всей грядке, вы пишете регулярку, чтобы точно попасть нужные «растения»;
— при каждом шаге даётся подсказка и объяснение, так что вы постепенно учитесь понимать синтаксис.
Сделано на React / Next.js, опенсорсно и доступно всем. Идеально тем, кто уже знаком с основами, но хочет использовать RegEx без головной боли.
Открыть игру: https://regexp-garden.madewith.fun/
Код (если захотите внести свой вклад): https://github.com/avfirsov/regexp-garden
#regex #обучение #игрыдляразработчика
Регулярные выражения часто кажутся страшными, но это зря. Этот интерактивный мини-гейм помогает учиться RegEx, словно поливать нужные растения в саду:
— вы получаете сад и задачу — например, «полить розы между строк А и Б»;
— вместо того чтобы бежать по всей грядке, вы пишете регулярку, чтобы точно попасть нужные «растения»;
— при каждом шаге даётся подсказка и объяснение, так что вы постепенно учитесь понимать синтаксис.
Сделано на React / Next.js, опенсорсно и доступно всем. Идеально тем, кто уже знаком с основами, но хочет использовать RegEx без головной боли.
Открыть игру: https://regexp-garden.madewith.fun/
Код (если захотите внести свой вклад): https://github.com/avfirsov/regexp-garden
#regex #обучение #игрыдляразработчика
❤2👍1🔥1🥰1
Hacksplaining: учимся кибербезопасности через реальные атаки
Hacksplaining — это интерактивный тренажёр для изучения уязвимостей веб-приложений. Каждый урок — это не лекция, а реальная атака, которую вы проводите сами в браузере — и сразу же учитесь, как её предотвратить.
Идеально, если вы имеете хоть какой-то опыт программирования и хотите понять, какие дыры реально ломают сайты и как их закрыть.
#безопасность #тренажер
Hacksplaining — это интерактивный тренажёр для изучения уязвимостей веб-приложений. Каждый урок — это не лекция, а реальная атака, которую вы проводите сами в браузере — и сразу же учитесь, как её предотвратить.
Идеально, если вы имеете хоть какой-то опыт программирования и хотите понять, какие дыры реально ломают сайты и как их закрыть.
#безопасность #тренажер
😁4
20 игр, которые научат программированию
Подходов к обучению много, но через игры учиться не так скучно. Ловите целую подборку таких игр. Вот лишь некоторые из них:
— CodeCombat — RPG, где нужно использовать различные ЯП, чтобы проходить уровни, головоломки и сражаться с врагами.
— Ruby Warrior — игрок управляет воином, который проходит различные уровни. Управлять персонажем можно только на Ruby.
— Untrusted — управляете персонажем и решаете головоломки через Java.
— Check IO — здесь предлагается решать различные задачки с помощью Python или TypeScript. Тут также есть возможность соревноваться с другими игроками.
— Dungeons & Developers — здесь нужно путешествовать по пещерам и выполнять задания, связанные с HTML, CSS и JavaScript.
Ещё больше игр в подборке.
@prog_point
Подходов к обучению много, но через игры учиться не так скучно. Ловите целую подборку таких игр. Вот лишь некоторые из них:
— CodeCombat — RPG, где нужно использовать различные ЯП, чтобы проходить уровни, головоломки и сражаться с врагами.
— Ruby Warrior — игрок управляет воином, который проходит различные уровни. Управлять персонажем можно только на Ruby.
— Untrusted — управляете персонажем и решаете головоломки через Java.
— Check IO — здесь предлагается решать различные задачки с помощью Python или TypeScript. Тут также есть возможность соревноваться с другими игроками.
— Dungeons & Developers — здесь нужно путешествовать по пещерам и выполнять задания, связанные с HTML, CSS и JavaScript.
Ещё больше игр в подборке.
@prog_point
👍7❤2
Бэкенд без боли: что нужно знать фронтендеру
Вы начали разбираться во фронтенде, уже пишете интерфейсы и подключаете данные. Но тут появляется слово вроде «rate limiting» — и всё, паника.
На этом этапе многим не хватает простой вещи — базового словаря. Понять, что происходит «на той стороне», помогает даже знание пары ключевых терминов.
Этот материал — как мини-гид по миру бэкенда для тех, кто с ним только начинает сталкиваться. Без лишней теории, коротко, по делу, простыми словами. Чтобы не просто копировать чужие fetch-запросы, а понимать, как всё устроено.
#фронтенд #бэкенд
Вы начали разбираться во фронтенде, уже пишете интерфейсы и подключаете данные. Но тут появляется слово вроде «rate limiting» — и всё, паника.
На этом этапе многим не хватает простой вещи — базового словаря. Понять, что происходит «на той стороне», помогает даже знание пары ключевых терминов.
Этот материал — как мини-гид по миру бэкенда для тех, кто с ним только начинает сталкиваться. Без лишней теории, коротко, по делу, простыми словами. Чтобы не просто копировать чужие fetch-запросы, а понимать, как всё устроено.
#фронтенд #бэкенд
❤3🔥2
Как компьютер хранит звук
Если хранить текст, изображения и даже мысли (в виде того же текста) человек научился давно, то со звуком долгое время были проблемы. В 19 веке Томас Эдисон изобрел фонограф — первое устройство для записи и воспроизведения звука. Записывало оно с помощью фиксации вибраций от звуковой волны сначала на фольге, а затем на воске.
Но с появлением компьютеров у нас появилась возможность хранить звуки цифровым методом. Он сильно отличается от аналогового и различается в зависимости от формата записи. В этом видео вы подробно узнаете о том, как звук записывается, хранится и воспроизводится на компьютере.
#видео
Если хранить текст, изображения и даже мысли (в виде того же текста) человек научился давно, то со звуком долгое время были проблемы. В 19 веке Томас Эдисон изобрел фонограф — первое устройство для записи и воспроизведения звука. Записывало оно с помощью фиксации вибраций от звуковой волны сначала на фольге, а затем на воске.
Но с появлением компьютеров у нас появилась возможность хранить звуки цифровым методом. Он сильно отличается от аналогового и различается в зависимости от формата записи. В этом видео вы подробно узнаете о том, как звук записывается, хранится и воспроизводится на компьютере.
#видео
👍4
☕️ Java-интервью без паники: один репозиторий — весь фундамент
Когда вы готовитесь к собеседованию, важна не только практика, но и быстрое освежение теории. Этот репозиторий — как шпаргалка по всему, что может спросить интервьюер на Java-собеседовании:
— чётко структурированная информация по коллекциям, потокам, JVM, сборке мусора, сериализации, аннотациям и другим ключевым темам;
— всё кратко, по делу, с примерами;
— подходит не только для подготовки, но и для регулярного повторения.
#java #шпаргалка
Когда вы готовитесь к собеседованию, важна не только практика, но и быстрое освежение теории. Этот репозиторий — как шпаргалка по всему, что может спросить интервьюер на Java-собеседовании:
— чётко структурированная информация по коллекциям, потокам, JVM, сборке мусора, сериализации, аннотациям и другим ключевым темам;
— всё кратко, по делу, с примерами;
— подходит не только для подготовки, но и для регулярного повторения.
#java #шпаргалка
🔥1
Точка входа в программирование
Делаем полностью автоматизированное онлайн радио с AI-ведущими и музыкой Такой проект уже реализовал автор этой статьи. Теперь он делится им с нами. Кажется, это отличная возможность сделать что-то классное, избежав кучи ошибок и обойдя подводные камни. Детальной…
От идеи до платформы: полгода разработки собственного AI радио
В одном из прошлых постов мы рассказывали о проекте AI-радио с нейросетевым диджеем, музыкой и автоматизацией всего на свете. Так вот, у этой истории появилось продолжение — и оно куда масштабнее.
Автор прошёл путь от любительского AI-радио до полноценной медиа-платформы, которая генерирует, собирает и транслирует контент почти без участия человека. Всё работает на микросервисах, Docker, Kubernetes, нейросетях и здоровой одержимости. В статье — честный разбор, как за 6 месяцев вырастить пет-проект до настоящей системы.
#ии #петпроекты
В одном из прошлых постов мы рассказывали о проекте AI-радио с нейросетевым диджеем, музыкой и автоматизацией всего на свете. Так вот, у этой истории появилось продолжение — и оно куда масштабнее.
Автор прошёл путь от любительского AI-радио до полноценной медиа-платформы, которая генерирует, собирает и транслирует контент почти без участия человека. Всё работает на микросервисах, Docker, Kubernetes, нейросетях и здоровой одержимости. В статье — честный разбор, как за 6 месяцев вырастить пет-проект до настоящей системы.
#ии #петпроекты
Telegram
Точка входа в программирование
Делаем полностью автоматизированное онлайн радио с AI-ведущими и музыкой
Такой проект уже реализовал автор этой статьи. Теперь он делится им с нами. Кажется, это отличная возможность сделать что-то классное, избежав кучи ошибок и обойдя подводные камни.…
Такой проект уже реализовал автор этой статьи. Теперь он делится им с нами. Кажется, это отличная возможность сделать что-то классное, избежав кучи ошибок и обойдя подводные камни.…
Forwarded from Веб-страница
CORS от А до Я: как не ломать фронт ради бэкенда
Ошибка CORS — один из самых частых стоперов на стыке фронта и API. В статье по шагам разбирается, зачем вообще нужен механизм Cross-Origin, какие бывают типы запросов, как устроен preflight и в чём чаще всего ошибаются разработчики. Плюс — готовые конфиги для разных серверов, чтобы настроить CORS правильно с первого раза.
#cors
Ошибка CORS — один из самых частых стоперов на стыке фронта и API. В статье по шагам разбирается, зачем вообще нужен механизм Cross-Origin, какие бывают типы запросов, как устроен preflight и в чём чаще всего ошибаются разработчики. Плюс — готовые конфиги для разных серверов, чтобы настроить CORS правильно с первого раза.
#cors
❤2