Emacs學習筆記(14):在Emacs中使用git


在Emacs中使用git

1 工具的選擇

在Emacs中使用git有很多中選擇,比如古老的Emacs VC ,經典的git.el, 強大的git-emacs, 以及新潮的magit / egg(egg是magit的一個分支)。

Emacs VC在Emacs中內置支持,配合后端,對各種版本控制工具如CVS、SVN、GIT、Hg等都能夠支持,但是功能比較單一,操作方式簡單而且古怪。

git.el 是git項目的官方工具,但是已經很久沒有更新了,據說對git的有些特性並沒有提供支持。

而magit和egg個人感覺還有待時間的檢驗。

所以這里選擇的是git-emacs。

2 安裝和配置

git clone https://github.com/tsgates/git-emacs.git 之后,只需要在Emacs配置文件中增加:

;;git-emacs
(add-to-list 'load-path "/path/to/git-emacs/")
(require 'git-emacs)

然后可以通過 M-x git-config-init 進行配置。

3 基本操作

如果當前打開的文件所在的文件夾處於版本控制中,可以通過M-x git-status查看狀態,如下圖:

在這個界面下可以使用一些命令:

 
key Command Comment
p/n   在所有文件之間上下移動
P/N   在變更過的文件之間上下移動
</>   定位到列表的頭部/尾部
v   以只讀方式打開文件
m/u/SPC   設置/取消/切換標記,標記用於批量處理文件
a   將文件加入版本控制
i   將文件加入ignore
c   提交

其他命令可以參考此時出現的Git-Emacs菜單。

4 提交

在狀態清單中使用“c",或者在任何buffer中運行M-x git-commit/git-commit-all/git-commit-file,可以提交index/所有文件/當前文件。

提交時會要求填寫注釋,如下圖:

填寫注釋后:

 
C-c C-c 提交
C-c C-q 取消

5 版本歷史

通過命令 M-x git-history可以查看整個工程的版本歷史,M-x git-log可以查看當前標記文件的版本歷史,兩個命令都會打開一個新的buffer:

如果你很喜歡gitk,也可以通過M-x gitk(前提是已經安裝了gitk)直接打開gitk窗口:

6 標簽(tag)和分支(branch)

M-x git-branch:列出所有分支,在這里可以通過快捷鍵c/d/RET實現創建/刪除/切換分支。

tag的操作也很簡單:

M-x git-tag可以創建一個標簽,以后在git-checkout時可以指定標簽的名字,也可以通過git-checkout-to-new-branch來基於tag創建分支。

7 小結

git-emacs在Emacs中實現了git命令行的所有功能,並且基於Emacs的強大功能使用起來更加方便。

使用git-emacs,不需要在Emacs和Terminal之間來回切換,提高了效率。


Author: Holbrook Wong <wanghaikuo@gmail.com>

Date: 2012-04-26 09:42:33 CST

HTML generated by org-mode 6.33x in emacs 23


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM