如何在 Emacs 中使用 Magit 管理 Git 项目 | Linux 中国

Posted Linux中国

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 Emacs 中使用 Magit 管理 Git 项目 | Linux 中国相关的知识,希望对你有一定的参考价值。

Emacs 的 Magit 扩展插件使得使用 Git 进行版本控制变得简单起来。
-- Sachin Patil


Git[1] 是一个很棒的用于项目管理的 版本控制[2] 工具,就是新人学习起来太难。Git 的命令行工具很难用,你不仅需要熟悉它的标志和选项,还需要知道什么环境下使用它们。这使人望而生畏,因此不少人只会非常有限的几个用法。

好在,现今大多数的集成开发环境 (IDE) 都包含了 Git 扩展,大大地简化了使用使用的难度。Emacs 中就有这么一款 Git 扩展名叫 Magit[3]

Magit 项目成立有差不多 10 年了,它将自己定义为 “一件 Emacs 内的 Git 瓷器”。也就是说,它是一个操作界面,每个操作都能一键完成。本文会带你领略一下 Magit 的操作界面并告诉你如何使用它来管理 Git 项目。

若你还没有做,请在开始本教程之前先 安装 Emacs[4],再 安装 Magit[5]

Magit 的界面

首先用 Emacs 的 Dired 模式[6] 访问一个项目的目录。比如我所有的 Emacs 配置存储在 ~/.emacs.d/ 目录中,就是用 Git 来进行管理的。

如何在 Emacs 中使用 Magit 管理 Git 项目 | Linux 中国

若你在命令行下工作,则你需要输入 git status 来查看项目的当前状态。Magit 也有类似的功能:magit-status。你可以通过 M-x magit-status (快捷方式是 Alt+x magit-status )来调用该功能。结果看起来像下面这样:

如何在 Emacs 中使用 Magit 管理 Git 项目 | Linux 中国

Magit 显示的信息比 git status 命令的要多得多。它分别列出了未追踪文件列表、未暂存文件列表以及已暂存文件列表。它还列出了储藏stash列表以及最近几次的提交 —— 所有这些信息都在一个窗口中展示。

如果你想查看修改了哪些内容,按下 Tab 键。比如,我移动光标到未暂存的文件 custom_functions.org 上,然后按下 Tab 键,Magit 会显示修改了哪些内容:

如何在 Emacs 中使用 Magit 管理 Git 项目 | Linux 中国

这跟运行命令 git diff custom_functions.org 类似。储藏文件更简单。只需要移动光标到文件上然后按下 s 键。该文件就会迅速移动到已储藏文件列表中:

如何在 Emacs 中使用 Magit 管理 Git 项目 | Linux 中国

反储藏unstage某个文件,使用 u 键。按下 s 和 u 键要比在命令行输入 git add -u <file> 和 git reset HEAD <file> 快的多也更有趣的多。

提交更改

在同一个 Magit 窗口中,按下 c 键会显示一个提交窗口,其中提供了许多标志,比如 --all用来暂存所有文件或者 --signoff 来往提交信息中添加签名行。

如何在 Emacs 中使用 Magit 管理 Git 项目 | Linux 中国

将光标移动到想要启用签名标志的行,然后按下回车。--signoff 文本会变成高亮,这说明该标志已经被启用。

如何在 Emacs 中使用 Magit 管理 Git 项目 | Linux 中国

再次按下 c 键会显示一个窗口供你输入提交信息。

如何在 Emacs 中使用 Magit 管理 Git 项目 | Linux 中国

最后,使用 C-c C-c(按键 Ctrl+cc 的缩写形式) 来提交更改。

如何在 Emacs 中使用 Magit 管理 Git 项目 | Linux 中国

推送更改

更改提交后,提交行将会显示在 Recent commits 区域中显示。

将光标放到该提交处然后按下 p 来推送该变更。

若你想感受一下使用 Magit 的感觉,我已经在 YouTube 上传了一段 演示[7]。本文只涉及到 Magit 的一点皮毛。它有许多超酷的功能可以帮你使用 Git 分支、变基等功能。你可以在 Magit 的主页上找到 文档、支持,以及更多[8] 的链接。


via: https://opensource.com/article/19/1/how-use-magit

本文由 LCTT 原创编译,Linux中国 荣誉推出

以上是关于如何在 Emacs 中使用 Magit 管理 Git 项目 | Linux 中国的主要内容,如果未能解决你的问题,请参考以下文章

magit rebase 使用 $EDITOR=vim

Emacs 中文处理相关问题

有哪些是必备的emacs扩展

Emacs 使用org-agenda 管理日程

如何将git的默认编辑器替换为emacs

用Org-mode管理emacs配置