一直以来都是命令行,今天试一下emacs的git模块。据说egg是一个从Magit fork出来但是用户界面更好的mode,可惜去了github站点发现4年没有更新了。而Magit仍然活跃。所以选择Magit吧。
通过emacs package管理安装最新版本2.7.0,
为了查看git状态,在init.el中添加快捷键绑定
(global-set-key (kbd "C-x g") 'magit-status)
然后重启emacs.
现在来试一试如何用,官方文档在这里:https://magit.vc/manual/magit.html#Top
C-x g来查询状态
会打开一个buffer,显示
Head: //指向当前分支的的最近一次提交
Merge: //远程分支的最近一次提交
Untracked files //工作区中有,但没有加入git管理
Unstaged files //git管理的,在工作区已经修改的,但是没有用git add进入staged状态
其实还有其他更多信息:
"Staged changes", //用git add变成了staged状态
"Unpulled commits", "Unpushed commits",
状态信息做的不错,git status输出也有这些信息,不过没有它这么简洁。
在状态buffer中,用C-h m 会打开帮助信息。
在shell中用rm命令删除一些文件,然后再查看状态,会看到类似如下信息
Unstaged changes (2)
deleted data/dw_product_dt.csv
deleted data/dw_product_dt.csv.tgz
Staged changes (2)
deleted data/dw_product_dt.csv
deleted data/dw_product_dt.csv.tgz
此时状态buffer会看到一个commit id,回车可以看到里面的详细信息
按P键计入push界面,再按p会直接push到远程分支。
前面已经说过了,这里重复一次
按c,然后再按c,输入comments
C-c C-c提交
可以参考此文:http://phplaber.iteye.com/blog/1699926