Emacs用Magit管理git项目

来源:互联网 发布:js 数组长度 编辑:程序博客网 时间:2024/06/06 03:08

一直以来都是命令行,今天试一下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.csvdeleted    data/dw_product_dt.csv.tgz


这时光标移动到这两个文件,分别按下s,会将这两个文件状态变为staged

Staged changes (2)deleted    data/dw_product_dt.csvdeleted    data/dw_product_dt.csv.tgz


然后继续按c建进入提交界面,按c后会提示输入comments,之后C-c C-c会提交成功。

此时状态buffer会看到一个commit id,回车可以看到里面的详细信息


按P键计入push界面,再按p会直接push到远程分支。


commit

前面已经说过了,这里重复一次

按c,然后再按c,输入comments

C-c C-c提交

push


把untracked文件变为staged

相当于git add命令
按下s即可


了解git文件的状态

可以参考此文:http://phplaber.iteye.com/blog/1699926




1 0
原创粉丝点击