Проблема с существующими системами контроля версий заключается не столько в их сложности; дело в том, что информации так много, что новичкам может быть очень трудно увидеть лес за деревьями (т. е. понять, что они делают, и им не нужно учиться, когда они только начинают ).
В этом посте git
речь пойдет о том , как управлять им из Emacs с помощью дополнительного пакета, называемого magit
. Да , git
это сложно, но вам не нужно многому учиться, чтобы использовать его продуктивно для целей, которые вы описываете.
Я собираюсь предположить, что вы git
установили (если вы этого не сделаете, получите его здесь ), и что вы вообще не хотите покидать Emacs.
Установка magit
magit
это git
интерфейс для Emacs. Он доступен в MELPA, и вы можете установить его через:
M-x package-install
RET magit
RET
Если вы не включили MELPA в своей конфигурации, вы можете найти инструкции о том, как это сделать, здесь .
Настройка репозитория
Допустим, ~/writing
в вашем домашнем каталоге есть папка с одним или несколькими документами, которые вы хотите поместить под контроль версий.
- Откройте папку в Dired: C-x d
~/writing
RET
- Откройте оболочку: M-x
shell
RET
- Введите
git init
и нажмите RET.
Вот и все. Теперь у вас есть git
хранилище. Нет необходимости «регистрировать» его где-либо. git
является распределенной системой контроля версий; для отслеживания изменений не требуется удаленный сервер.
Проверка состояния вашего репозитория
- Вернитесь в буфер Dired, в котором перечислены файлы в вашем хранилище.
- Есть M-x
magit-status
RET.
Вы можете думать о буфере, который появляется как ваша «панель управления» для работы с вашим репозиторием. Для нового хранилища это выглядит примерно так:
Вы можете перемещаться между различными разделами этого буфера, используя n( magit-goto-next-section
) и p( magit-goto-previous-section
).
Вы можете обновить буфер, нажав g( magit-refresh
).
Обратите внимание, что вы можете вызвать буфер состояния из любого файла или каталога, принадлежащего ранее настроенному вами хранилищу.
Добавление файлов
Как вы можете видеть на скриншоте, в хранилище есть три файла, которые git
в настоящее время не отслеживаются. Для того, чтобы сказать , git
чтобы начать отслеживать файл, вы должны поставить его: С точкой на файл , который вы хотите добавить, нажмите s. Буфер состояния будет выглядеть так:
совершение
Поместив один или несколько файлов, вы можете зафиксировать их, нажав c c. Это вызовет буфер, который выглядит следующим образом:
Введите ваше сообщение о коммите вверху и затем нажмите, C-c C-cчтобы завершить коммит. (Чтобы прервать, нажмите C-c C-k.)
Буфер состояния будет выглядеть так:
Постановочные изменения
Если вы внесете изменения в отслеживаемый файл, они будут перечислены в отдельном разделе («Неустановленные изменения») в буфере состояния:
Чтобы просмотреть изменения, внесенные в файл, перейдите к строке, которая говорит, Modified file-1.txt
и нажмите TAB:
Чтобы внести эти изменения, нажмите s:
Просмотр последних коммитов
Наконец, если вы хотите просмотреть прошлые коммиты, вы можете нажать l l(это две строчные буквы L):
Как обычно, вы можете перемещаться по буферу, который подходит nи p. Magit покажет изменения, связанные с отдельными коммитами, перечисленными в этом буфере, в отдельном окне.
Резюме
Из оболочки:
git init
: Инициализировать git
репозиторий в текущем каталоге
Из любого файла или каталога, связанного с git
хранилищем:
Из буфера состояния:
Вот и все. :)
git
иmagit
- github.com/magit/magit - так как вы уже немного поиграли с ним. Возможно, вы захотите ознакомиться с параметрами командной строки, чтобы лучше понять, чтоmagit
происходит. Emacs не для не-кодеров, но вы достаточно долго были на сцене, чтобы не бояться этого - :) Вы также можете попробовать поиграть сgist
: github.com/defunkt/gist.el