简介

magit是emacs编辑器用来管理git版本控制的插件,按照官网的说法是A Git Porcelain inside Emacs,至于emacs与magit如何安装在此就不多费口舌了,有需要的小伙伴们可以去看下我的spacemacs配置或者magit官方网站

那么言归正传,当我们安装完magit如何实现git一系列操作呢?我们以刚才的emacs配置为例,来一步步详解如何使用magit管理git。

magit

clone我们的github项目到本地。

  1. 打开我的emacs配置项目,获取clone地址。如图所示 \magit1.png

  2. 在emacs里使用M-x dired打开想clone的目录,在此我新建了一个magit文件夹,并打开。如图 \magit2.png

  3. 使用magit指令clone远程项目,M-x magit-clone,输入clone的远程仓库地址并填写clone文件夹名称,如图 \magit3.png

    \magit4.png

  4. g刷新目录,现在magit文件夹下的.spacemacs.d便是我们远程clone下来的github项目了,如图 \magit5.png

commit提交改动文件

  1. 现在我们打开.spacemacs.d的README.md文件,新增内容并保存,如图所示 \magit7.png

  2. 执行M-x magit-status查看git改动情况,如图所示 \magit8.png

  3. 在magit-status窗口下,执行M-x magit-commit或者使用快捷键c c提交改动,左侧将会显示改动具体信息,并且在底下指令提示commit everything?(y or n), 输入y,右侧显示要求输入commit的文字描述,输入新增jade-mode结果如图 \magit9.png

  4. 输入完commit信息之后,执行快捷键C-c C-c提交commit。如图 \magit10.png 到这里,commit提交算是完成了,接下来便是sync到我们的远程仓库。

push commit到远程github仓库。

  1. 在magit窗口下,执行M-x magit-push,push操作,push操作为一系列操作,如图 \magit11.png

  2. 选择将要push的本地gitmaster,RET,如图 \magit12.png

  3. 在此选择所需push的远程gitorigin/master,RET,如图 \magit13.png
  4. 在magit-status窗口按快捷键$,打开magit进程magit-process,结果如图 \magit15.png

  5. 验证是否成功push,打开github的远程仓库地址,如图所示 \magit16.png

到此,我们便成功的使用magit的clone,commit,push指令完成了本地与远程仓库的版本控制。

其它

magit提供的git指令还有很多,本文的用意在于实现一次magit系列操作,更多的功能小伙伴们可以去查看magit官网

  1. M-x magit-pull指令即从远程仓库sync到本地,与magit-push的功能一样,只是sync的方向不同。

  2. magit无法track新建文件,解决方案是在magit-status下commit窗口中在新文件行按s重新stage。

  3. M-x magit-log-all 查看github项目的所有分支提交日志,如图所示 \magit18.png

  4. M-x magit-tag 为本地添加tag标签

  5. M-x magit-push-tag 提交tag标签到远程仓库

  6. magit-mode状态下b b切换分支

    总结

    使用magit指令便可以脱离github客户端,在某种程度上可以说提高了开发效率,也算是emacs利器之一。

happy joining !