Emacs. Пакет magit
2026-03-13
·
3 мин. для прочтения
Emacs. Пакет magit.
Содержание
1 Общая информация
- Magit — интерфейс для работы с Git в редакторе Emacs.
2 Основные операции
2.1 Запуск Magit и просмотр состояния
M-x magit-statusилиC-x g: открывает буфер magit-status.- Здесь отображаются текущая ветка, неотслеживаемые файлы, изменения в рабочей директории и в индексе, а также список последних коммитов.
2.2 Добавление изменений в индекс (staging)
- Находясь в буфере статуса, перемещайтесь к файлу или hunk’у (фрагменту изменений) с помощью стрелок.
s: добавить выделенный файл или hunk в индекс (staged).S: добавить все изменения сразу.u: убрать файл или hunk из индекса (unstage).TAB: раскрыть/свернуть изменения в файле для выборочного staging.
2.3 Создание коммита
c: войти в меню коммита.- Затем:
c: создать коммит, открывается буфер для ввода сообщения.- Напишите сообщение.
C-c C-c: завершить коммит.C-c C-k: отменить коммит.c e: изменить последний коммит (amend).
2.4 Работа с ветками
b: открывает меню веток.- Доступны команды:
b n: создать новую ветку.b c: переключиться на другую ветку (checkout).b s: показать все локальные и удалённые ветки.b d: удалить ветку.b m: переименовать ветку.b b: быстро переключиться на другую ветку (список для выбора).
2.5 Слияние (merge)
m: войти в меню слияния.m: выполнить слияние указанной ветки с текущей.
- При конфликтах Magit подсветит файлы, требующие разрешения.
2.6 Получение изменений из удалённого репозитория
F: меню fetch (загрузить данные без слияния):F p: fetch из пула (origin) текущей ветки.F a: fetch из всех удалённых репозиториев.
P: меню pull (fetch + merge):P p: pull из upstream текущей ветки.P u: настроить upstream для текущей ветки.
2.7 Отправка изменений (push)
P: меню push:P p: отправить текущую ветку в её upstream.P u: отправить и настроить upstream.P o: отправить в другой удалённый репозиторий (например, origin другой ветки).
2.8 Просмотр истории (лог)
l: открыть меню лога:l l: показать лог текущей ветки.l o: лог всех веток.l h: лог с детальной информацией (автор, дата).l L: лог с визуализацией графа коммитов.
- В логе можно перемещаться, нажимая
RETна коммите, чтобы увидеть его изменения.
2.9 Интерактивное перебазирование (rebase)
r: меню rebase:r i: начать интерактивное перебазирование (выбрать коммит, от которого отпочковаться).r c: продолжить перебазирование после разрешения конфликтов.r s: пропустить текущий коммит.r a: прервать перебазирование.
2.10 Разрешение конфликтов
- В буфере статуса конфликтующие файлы помечены статусом unmerged.
- Перейдите к файлу и нажмите:
e: открыть файл для ручного редактирования конфликтов.s: после исправления добавить файл в индекс (пометить как разрешённый).k: отменить все изменения в файле (при конфликте это удалит файл, будьте осторожны).
2.11 Отмена изменений
k: на файле или hunk’е откатить изменения (discard). Magit запросит подтверждение.x: отменить добавление в индекс (аналогgit resetдля конкретного файла).V: откатить коммит (revert) — создать новый коммит, отменяющий выбранный.
2.12 Работа с тегами
t: меню тегов:t: создать новый тег.t d: удалить тег.t p: отправить теги в удалённый репозиторий.
2.13 Другие полезные команды
?: справка по Magit.-: переключиться между буферами Magit (например, из лога обратно в статус).$: показать буфер с выводом последней Git-команды.

Authors
Профессор кафедры теории вероятностей и кибербезопасности
Работаю профессором на кафедре теории вероятностей и кибербезопасности Российского университета дружбы народов им. Патриса Лумумбы.
Научные интересы относятся к области теоретической физики и математического моделирования.