Emacs 和 Git
因为我用的 Git 功能比较少, 所以只会以简单的几个功能来介绍. Magit 作为 Emacs 的一个插件, 好处就是把常见 (自信点, 几乎所有) 的 Git 功能都集成到了几个简单的按键来操作. 和图形化界面比起来虽然可能不太直观, 但是应该还算是比较高效.
一些常见的功能:
魔镜魔镜, 听我心意 打开项目对应的 Magit 面板: 在项目文件夹/项目文件上按下 C-x g
或者 M-x magit
.
(注: 在一个空文件夹里面执行上面的操作, Magit 会贴心地问你要不要新建一个项目文件夹, 类似于 git init
)

- 我新写了一些屎山代码/我修改了一些屎山代码, 请帮我加到仓库里面: 在 Magit 面板里面会显示 Unstaged file 和 Modified file, 将光标移动到上面按下
s
键即可将这些代码记录到仓库里面. (类似于 git add
)

- 写得差不多了, 赶紧留一个存档点防止自己写一些会炸项目的代码: 添加一个新的 commit, 只需要按下
c c
键即可打开 commit 编辑器 (类似于 git commit -m "..."
)

(注 1: commit 只会 commit 已经 staged 文件, 这不是 magit 的问题, 这个是 git 的使用逻辑)
(注 2: 演示里面的输入法比较恼人, 是因为我没有关的原因, 请忽略这个小小的坑吧. 不过使用 sys-input 已经可以做到中英文输入自由切换的目的了, 实际使用情况还算是比较流畅的)
- 赶紧放到远程服务器上,
刷 commit 小绿墙: 按键是 P u
, 类似于 git push
, u
选项是 push 到 orign/master.
- 我代码调炸了, 快帮我回滚:
- 我想开一个新的 Branch 来写一些比较新的代码 (防止炸主仓库):
b
键就会弹出 branch
的提示界面, 在其中可以自由地选择.

(注: 其中有一个 checkout 和 create, 这两个的区别在于是否会切换当前的分支, 这不是 Magit 太闲, 而是 git 的特性.)
- 我去, 新 Branch 不知道为什么能跑通了, 我要把它和主仓库合并了: 使用
m m

(注 1: 可以用 m p
来预览, 防止手贱)
(注 2: 请忽略后面的 c
找 commit 的过程)
- 我往这个项目里面塞了一些见不得人的东西, 为了安全我决定不管理这些乱七八糟的东西:
i
来修改 .gitignore
.
大概就是这样, 基本上用到的这些 Git 命令全在几个按键里面都能够解决.
可以参考的相关链接: Magit Reference Card.