- 1 课程回顾
- 2 magit版本管理
- 3 高亮显示修改的部分
- 4 magit-delta增强git diff
- 5 结语
1 课程回顾 🔗
通过上节课,我们学习了如何通过Org mode的capture特性来快速记录灵感、笔记,我们学习了如何通过denote来系统化地构建个人知识体系,如何通过 org-super-links
来做笔记之间的链接,如何通过 consult-notes
来查找我们需要的笔记。我们可以从现在做起,搭建起自己的笔记体系,坚持下去,你就会发现,它会成为你的财富!
本节课,我们来学习一下如何通过Emacs来做版本管理。
2 magit版本管理 🔗
通过Emacs来做版本管理,绕不开的一个插件是 magit ,我个人认为它是Emacs里的另一个杀手级应用!我们先来安装和配置它:
(use-package magit
:ensure t
:hook (git-commit-mode . flyspell-mode)
:bind (("C-x g" . magit-status)
("C-x M-g" . magit-dispatch)
("C-c M-g" . magit-file-dispatch))
:custom
(magit-diff-refine-hunk t)
(magit-ediff-dwim-show-on-hunks t))
我们在什么情况下会需要用到版本管理呢?
- 我们可以通过git来管理我们的配置文件,并上传到github上
- 我们可以通过git来管理我们的笔记
- 我们可以通过git来管理我们的项目
- …
当我们安装完 magit
后,我们只需要简单的按下 C-x g
来激活它就可以了。这里分成两种情形,一种是还没有 git init
的文件夹,它会让你指定一个 Git repository 的位置;另一种是是当前的文件,已经在命令行通过 git init
进行过版本管理了,此时,我们可以直接看到相关的版本管理信息;
在这个界面,我们可以按下 ?
来显示有哪些快捷键和对应的git指令:
我们可以按下 s
来 Stage
我们修改的文件,我们然后可以按 c
来 Commit
我们修改的内容,然后我们可以按 P
来将改动推送到远程仓库。整个过程都可以在Emacs里,通过一个字母的快捷键,通过可视化的方式来进行,让我们完全不需要在命令行去敲 git add
, git commit
, git push
等命令,非常方便。
我们在这一节课后,将完全使用 magit 来进行配置文件的版本管理。
magit
的官方手册:https://magit.vc/manual/
3 高亮显示修改的部分 🔗
diff-hl 插件可以在左侧高亮显示相对于远程仓库的修改部分。
(use-package diff-hl
:ensure t
:hook ((dired-mode . diff-hl-dired-mode-unless-remote)
(magit-pre-refresh . diff-hl-magit-pre-refresh)
(magit-post-refresh . diff-hl-magit-post-refresh))
:init
(global-diff-hl-mode t)
:config
;; When Emacs runs in terminal, show the indicators in margin instead.
(unless (display-graphic-p)
(diff-hl-margin-mode)))
我们安装完这个插件后,就可以看到在当前文件,相对于远程仓库的修改部分,在Emacs最左侧有一个色条来展示,非常方便:
4 magit-delta增强git diff 🔗
magit-delta 插件可以通过 git-delta
来更优化的方式显示diff内容(需要提前安装 brew install git-delta
)。
(use-package magit-delta
:ensure t
:hook (magit-mode . magit-delta-mode)
:config
(setq magit-delta-hide-plus-minus-markers nil)
)
当我们安装配置完 magit-delta
后,我们查看文件修改的内容将更加美观:
5 结语 🔗
经过今天的学习,我们了解了如何通过Emacs做版本管理,产品经理使用 magit
没有那么重度,基本上今天讲的这些内容能够覆盖大多数工作中的需要。后续我们可以根据自己的实际情况,不断的挖掘 magit
的使用方法,优化我们的工作流,提升我们的工作效率。
这节课的配置文件的快照见:emacs-config-l13.org
你也可以在 这里 查看最新的配置文件。