← 上一章:使用者設定 下一章:新增、初始 Repository →


其它方便的設定

工程師大多有著懶惰的美德,討厭重複的工作,所以常會幫自己設定一些方便的設定,以下是一些我自己在 Git 上常會做的方便設定。

更換編輯器

一般來說,Vim 是 Git 預設的編輯器,所以在終端機下使用 Git,對新手的麻煩之一就是或多或少都會遇到 Vim 這個編輯器。雖然我們在超精簡 Vim 操作介紹章節介紹了這個神奇的編輯器大概怎麼使用,但對平常沒在用,或用不習慣的人來說還是會覺得很麻煩。

不過還好,不一定要用 Vim,你可以在終端機下執行這個指令:

$ git config --global core.editor emacs

這樣就可以把預設的 Vim 編輯器換成 Emacs 了(咦?好像沒比較好?)

其實除了 Vim 或 Emacs 之外,也可以使用 Sublime Text、Atom 或是 Visual Studio Code 比較現代的文字編輯器。只是你需要先 Google 一下怎麼從終端機啟動這些應用程式,然後就可以用一樣的方法把 Vim 換掉了。

如果在操作 Git 的過程中跳出 Vim 這個問題對你一直很困擾,那建議可以搭配圖形介面軟體使用。

懶得打字,或常打錯字

雖然 Git 指令不長,但有時候就懶得打那麼多字(例如 checkout 指令就有 8 個字母),或是有些指令就是常會打錯(例如 status 指令我就常打成 state)。

遇到這種狀況,我們可以在 Git 裡設定一些「縮寫」,然後就可以少打幾個字。只要在終端機下執行:

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.st status

設定之後,輸入 git co 指令就跟 git checkout 會有一樣的效果,git st 就有 git status 的效果,一下就省了很多個鍵。

而且還可以再加一些參數進去,例如每次在看 log 的時候,為了看比較精簡的資訊,都得要輸入 git log --oneline --graph 這麼長的指令,改用 Alias 設定的話:

$ git config --global alias.l "log --oneline --graph"

這樣之後只要輸入 git l 就可以有原來 --oneline --graph 的效果了:

$ git l
*   cc200b5 (HEAD -> master) Merge branch 'cat'
|\
| * 0d1d15d (cat) add cat 2
| * 0d392fb add cat 1
|/
* 657fce7 (origin/master, origin/HEAD) add container
* abb4f43 update index page
* cef6e40 create index page
* cc797cd init commit

或是甚至可以再把格式弄複雜一點,把 Commit 時間的人跟時間都加進來:

$ git config --global alias.ls 'log --graph --pretty=format:"%h <%an> %ar %s"'

尾巴那段看起來有點複雜的 format 的參數就是印出 Commit 的各別資訊,參數代表的意思請執行 git help log 後查閱關於 format 有關的段落。用起來的樣子就會像這樣:

$ git ls
*   cc200b5 <Eddie Kao> 9 seconds ago Merge branch 'cat'
|\
| * 0d1d15d <Eddie Kao> 18 seconds ago add cat 2
| * 0d392fb <Eddie Kao> 20 seconds ago add cat 1
|/
* 657fce7 <Eddie Kao> 13 days ago add container
* abb4f43 <Eddie Kao> 13 days ago update index page
* cef6e40 <Eddie Kao> 2 weeks ago create index page
* cc797cd <Eddie Kao> 2 weeks ago init commit

這樣甚至不需要圖形介面工具也可以輕鬆的看 log。上面這些 Alias 的設定,也可直接到 ~/.gitconfig 裡修改:

[alias]
  co = checkout
  br = branch
  st = status
  l = log --oneline --graph
  ls = log --graph --pretty=format:"%h <%an> %ar %s"

不要小看這幾個字的差別,每次少敲幾次鍵盤,長期累積下來也是很驚人的。


← 上一章:使用者設定 下一章:新增、初始 Repository →

Comments