[教學] git-6 個人設定 - 討論區

[教學] git-6 個人設定

visibility文章瀏覽次數 61 reply_all文章回覆數 3

特種兵

特種兵圖像(預設)

2020-02-09 09:34:34

From:1.161.151.30

個人設定

每次提交 git 時都會有紀錄,而這些基本的紀錄訊息有部分來自於我們的設定。

例如提交者姓名、電子信箱等,透過這些資料,我們可以知道是誰做了什麼事情。

特別是在一個專案中,可能有好幾個開發者,從紀錄中我們可以很清楚知道要找誰協調問題。

通常個人設定都只要設定一次即可,以後都會套用這樣的設定。

設定姓名與電子郵箱

在 git bash 中輸入以下兩行指令:

$ git config --global user.name "NVDA TW"
$ git config --global user.email "nvda@forblind.org.tw"

我們分析一下上面的指令:

  • git 指令當然都是以 git 開頭的。
  • config 通常用來配制設定檔
  • --global 是全域設定,也就是沒有特別設定就以此為預設值的意思
  • 因為可以做的設定其實有很多,所以我們這邊指定 user.name 設定使用者姓名與 user.email 設定使用者電子郵箱
  • 最後設定的值使用雙引號包夾是因為可能會有空格,不使用引號的話,空格會被當成是下一個參數,這樣就會發生錯誤
  • 每個參數間的空格都是必要的,這樣程式才能正確區分不同參數

確認當前設定

設定完當然需要確認一下有沒有成功,我們可以輸入:

git config --list

 diff.astextplain.textconv=astextplain                                           
 filter.lfs.clean=git-lfs clean -- %f                                            
 filter.lfs.smudge=git-lfs smudge -- %f                                          
 filter.lfs.process=git-lfs filter-process                                       
 filter.lfs.required=true                                                        
 http.sslbackend=openssl                                                         
 http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt             
 core.autocrlf=true                                                              
 core.fscache=true                                                               
 core.symlinks=false                                                             
 core.editor="C:\\Program Files\\Notepad++\\notepad++.exe" -multiInst -notabbar -
 nosession -noPlugin                                                             
 credential.helper=manager                                                       
 user.name=NVDA TW                                                              
 user.email=nvda@forblind.org.tw                                                 

前面有其他的設定,我們主要先看最後兩行就好。

的確有成功設定了

設定檔

如果不想打指令設定也可以使用編輯器直接打開設定檔來進行設定

不管是使用指令或圖形介面來設定,最後程式都會把資訊寫進設定檔當中

個人設定檔位在目前登入 windows 帳號下的 .gitconfig 這個檔案

以我這邊為例,使用者帳號是 administrator 那設定檔的完整路徑就在 C:\Users\Administrator\.gitconfig

以上是 windows 的路徑,其實剛進入 git bash 還沒切換資料夾的話,預設直接就是在自己的帳號下了

而在 git bash 顯示設定檔的路徑長這樣 /c/Users/Administrator/.gitconfig

讓我們以 vim 來看一下設定檔的內容:

$ vim ~/.gitconfig

[user]                                                                          
         name = NVDA TW
         email = nvda@forblind.org.tw
  • ~ 表示家目錄,也就是自己帳號下的意思,這樣就不需要輸入那麼長的路徑了
  • . 開頭的資料夾或檔案,在 linux 的世界裡是隱藏檔,linux base 不是以副檔名來與檔案做關連的

專案設定

基本上有 --global 就會有 --local

進入到某個專案後,將上述指令的 --global 參數換成 --local 後,在該專案下就會使用 local 所設定的值。

因為每個專案下會有一個 .git 的資料夾,因此在不同專案下使用 local 來設定時,

這些區域設定或稱專案設定會寫入 .git/config 這個設定檔案中。

所以在 global 設定檔不會看到各個專案的 local 設定

預設編輯器

其實在安裝 git 時就有這個選項,錯過了也沒關係,我們一樣可以下指令來變更,例如把 vim 改成 emacs:

$ git config --global core.editor emacs

重點是系統要有安裝這個編輯器,如果是其他的編輯器要先確認在 cmd 環境下怎麼打指令啟動,像是包含程式的路徑跟參數等等

內建的編輯器像 notepad 也就是記事本,應該可以直接設定

這邊提供 notepad++ 的設定:

git config --global core.editor "C:/Program Files/Notepad++/notepad++.exe" -multiInst -notabbar -nosession -noPlugin

別名(alias) 設定

慢慢的會發現 git 的指令除了參數多外,有些指令與參數的英文單字還滿長的

如果想要加快輸入又想避免容易打錯字的話,除了善用 tab 鍵讓系統來幫我們自動補齊外,

我們還可以設定一些縮寫別名來加快我們的輸入。

像是 branch 或 checkout 都是經常輸入且字母有點長的指令,提供以下設定供參:

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

那以後輸入 git co 就相當於 git checkout 了,

不要小看少打幾個字,長期累積下來可是很可觀的。

不過也不要設定得太簡略,上面的設定 co 或 st 等等都還連想得出是什麼字的縮寫,

例如只有一個 m 到底是 master 還是 merge 或者其他,時間久了大概就搞不清楚了,

還要再去查的時間完整指令都打完了。

整串的指令縮寫也沒問題:

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

以此類推,上面的設定完成後,輸入 git l 相當於 git log --oneline

如果還不知道有哪些指令,那就等我們開始使用 git 一段時間再來設定別名吧。

別名設定檔

注意到了嗎,一樣是使用 --global 來設定的,因此設定檔都是 .gitconfig

$ vim ~/.gitconfig
[alias]
co = checkout
br = branch
st = status
l = log --oneline

好了,這些設定就很夠用囉,下一篇就真的要開始 git 了。
※最後更新時間:2020-02-09 12:09:11 From:1.161.151.30 By:特種兵

留言

#1

特種兵

特種兵圖像(預設)

2020-02-09 09:38:30

From:1.161.151.30

眼尖的朋友應該可以看出 git config --list 內的 core.editor 是預設編輯器的設定
他和我們的指令都是對應的

#2

coscell

coscell圖像(預設)

2020-02-09 11:53:35

From:180.176.111.5

alias 是別名不是聚集 macro, 兩者很像但作用不同。
前者相當於縮寫,後者就是批次處理。

#3

特種兵

特種兵圖像(預設)

2020-02-09 12:09:42

From:1.161.151.30

感謝指正