Git[1] 是一個很棒的用於專案管理的 版本控制[2] 工具,就是新人學習起來太難。Git 的命令列工具很難用,你不僅需要熟悉它的標誌和選項,還需要知道什麼環境下使用它們。這使人望而生畏,因此不少人只會非常有限的幾個用法。
好在,現今大多數的整合開發環境 (IDE) 都包含了 Git 擴充套件,大大地簡化了使用使用的難度。Emacs 中就有這麼一款 Git 副檔名叫 Magit[3]。
Magit 專案成立有差不多 10 年了,它將自己定義為 “一件 Emacs 內的 Git 瓷器”。也就是說,它是一個操作介面,每個操作都能一鍵完成。本文會帶你領略一下 Magit 的操作介面並告訴你如何使用它來管理 Git 專案。
若你還沒有做,請在開始本教程之前先 安裝 Emacs[4],再 安裝 Magit[5]。
Magit 的介面
首先用 Emacs 的 Dired 樣式[6] 訪問一個專案的目錄。比如我所有的 Emacs 配置儲存在 ~/.emacs.d/
目錄中,就是用 Git 來進行管理的。
若你在命令列下工作,則你需要輸入 git status
來檢視專案的當前狀態。Magit 也有類似的功能:magit-status
。你可以透過 M-x magit-status
(快捷方式是 Alt+x magit-status
)來呼叫該功能。結果看起來像下麵這樣:
Magit 顯示的資訊比 git status
命令的要多得多。它分別列出了未追蹤檔案串列、未暫存檔案串列以及已暫存檔案串列。它還列出了儲藏串列以及最近幾次的提交 —— 所有這些資訊都在一個視窗中展示。
如果你想檢視修改了哪些內容,按下 Tab
鍵。比如,我移動游標到未暫存的檔案 custom_functions.org
上,然後按下 Tab
鍵,Magit 會顯示修改了哪些內容:
這跟執行命令 git diff custom_functions.org
類似。儲藏檔案更簡單。只需要移動游標到檔案上然後按下 s
鍵。該檔案就會迅速移動到已儲藏檔案串列中:
要反儲藏某個檔案,使用 u
鍵。按下 s
和 u
鍵要比在命令列輸入 git add -u
和 git reset HEAD
快的多也更有趣的多。
提交更改
在同一個 Magit 視窗中,按下 c
鍵會顯示一個提交視窗,其中提供了許多標誌,比如 --all
用來暫存所有檔案或者 --signoff
來往提交資訊中新增簽名行。
將游標移動到想要啟用簽名標誌的行,然後按下回車。--signoff
文字會變成高亮,這說明該標誌已經被啟用。
再次按下 c
鍵會顯示一個視窗供你輸入提交資訊。
最後,使用 C-c C-c
(按鍵 Ctrl+cc
的縮寫形式) 來提交更改。
推送更改
更改提交後,提交行將會顯示在 Recent commits
區域中顯示。
將游標放到該提交處然後按下 p
來推送該變更。
若你想感受一下使用 Magit 的感覺,我已經在 YouTube 上傳了一段 演示[7]。本文只涉及到 Magit 的一點皮毛。它有許多超酷的功能可以幫你使用 Git 分支、變基等功能。你可以在 Magit 的主頁上找到 檔案、支援,以及更多[8] 的連結。