Back
Featured image of post Emacs Magit✨插件

Emacs Magit✨插件

Emacs 杀手锏之 Magit 常用功能

Magit

A Git Porcelain inside Emacs。Magit

Magit 可以看作是一个嵌在 Emacs 里的一个客户端,但它同时也提供了命令行的操作(废话)。在 Emacs 里打开一个 Git 项目,M-x: magit-status 这样就启动了 magit 了,之后下面提到的操作就非常简单了。

Table of Contents

1. Branch

b

magit-branch
magit-branch

会弹出以上菜单,和你平时看到的完全不同(毕竟是在 Emacs)。

其中紫色对应的是 按键 后面的白色字体就是具体功能的描述了。例如:再单击 c 我们就进入了创建新分支的命令。Branch

2. Stage(all) / Unstage(all)

这里我们可以 Stage 单个文件,也可以 Stage 全部缓冲区的文件,相反,Unstage 也是这样的。

s S 全选 , u U 全选 小写对应是单个缓冲区文件,大写对应的是全部缓冲区文件。Stage/Unstage

3. Commit

c

magit-commit
magit-commit

再单击一次 c 就会进入编辑 commit 的界面了,根据界面提示,C-c C-c 提交 commitC-c C-k 取消 commitCommit

上面 ‘-a’, ‘-e’…的意思也是一样的,按 - a,不同的是带 - 前缀的功能只会在当前的操作上暂时启用,而且后面灰色的注释会暂时高亮,代表着暂时启用对应的。当你再一次按 c 时,后面的注释还是灰色,代表着没开启对应的功能。

4. Log

l

还是弹出一个与上面类似的菜单,这里就不展示图片了。再次单击,我们就能看到当前分支的所有 commit 记录。最常用的就是这个功能了,当然里面还有很多我还没使用过的功能。但是 在这个显示 LOG 记录的页面里,我们还可以轻松的完成 RESETREVERT 这两个常用的操作。Log

5. Push

p

在弹出菜单后,再按一次 p,就触发了 pushPush

magit-push-force-lease
magit-push-force-lease

❗ 当我们执行回滚操作后,要将回滚后的仓库提交到远程仓库时,执行以上 push 的方法是行不通的,无法提交到远程仓库

先按 p,进入 push 菜单;再按 - f,暂时开启 force with lease;然后再按 p 执行 push 操作,就能提交成功!

想要具体了解 force with leaseforce 之间的区别,自己百度一下就明白了。

6. Reset

X

magit-reset
magit-reset

上面的说明够直白清楚的了,在我们一般惯性思维里,会选择 X h,这种方式——一切都回到原来的那个状态。Reset

先按 l l 进入 Log,选择 Reset 的点之后,再进行上面的操作。

总结

  • 直接在 Github 单击下载按钮下载的仓库是没有 .git 文件夹的,也就是说这样下载下来的不是一个仓库……问题很大,所以还是使用 git clone ...... 的方式更稳妥,除非你不想要 .git 文件,也就是仓库提交记录。
  • 在本地仓库新建 dev branch 时,先 p u,目的是在远程仓库创建也新建一个 dev branch,然后再 p p,不然会报错,你还不知道怎么弄。
Licensed under CC BY-NC-SA 4.0