Git 環境建置

ssh key 的產生

有的Git server需要使用者先上傳ssh key後才能接受連線,若遇到這類的伺服器,請使用下列指令來產生pub ssh key:

ssh-keygen -t rsa -C "[email protected]"

產生的 key 會在 id_rsa.pub 檔案中。複製此檔內容,進入Git Server:Settings –>SSH and GPG kyes –>New SSH Key –>Add SSH Key 把該key值加入即可。

更多資訊可參考:Git ssh 自動登入方式

Git config 配置

主要用來提供Git控制項及相關設定,可以在下列幾個地方找到:
* /etc/gitconfig 主機中所有用戶都用的到的共通設定。 git config 時若加上 –system ,讀寫的就是這個文件
* ~/.gitconfig 個人用戶用的到的共通設定。 git config 時若加上 –global,讀寫的就是這個文件
* .git/config 該目錄的各自設定。

Git 的設定與HTML CSS一樣,越接近工作目錄的會覆蓋掉上層的變數,如 .git/config 內的參數,會覆蓋掉 ~/.gitconfig 內的同名參數。

用戶資訊設置

用戶資訊主要是設置個人名稱及email資訊,由於每次提交此二資訊都會被記錄到Server,所以建立專案的第一個步驟,就是設置用戶資訊,設置方式如下:

git config --global user.name "justjii"
git config --global user.email [email protected]

git config --system core.editor "/bin/vim"

Proxy 設定

若使用的環境是封閉主機,需要透過Proxy才能連上Internet,那就需要使用Proxy。Git 的Proxy設定命令很間單:

git config http.proxy http://paoxyID/DNS:port
git config --global http.proxy http://paoxyID/DNS:port

如果有認真看上面的文字,一定可以了解 –global 的意涵。如果只想套用在這個目錄,只需要將 –global 去掉即可。

有版本衝突時使用的比較工具設置

如果發生版本控制時,可以讓Git使用我們指定的比較工具來進行比較,目前Git支援的比較工具有:kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,和 opendiff 等工具。如果要使用其他工具,可以透過組態指令來更換版本比較工具,語法如下:

git config --global merge.tool vimdiff

查看系統組態訊息

如果想要查看目前系統設置的相關組態訊息,可以使用:

git config --list
   #user.name=justjii
   #[email protected]
   #color.status=auto
   #color.branch=auto
   #color.interactive=auto
   #color.diff=auto
   ...

忽略特定文件

.gitignore 檔案內存放的文件或目錄就是不希望Git對該文件進行追蹤,撰寫此檔案之基本規則如下:
* 空白行,或以#開頭的都會被Git忽略
* !用來表示驚嘆號外的文件都要追蹤

.git
*.bak
!lib.a
/test
/build/
/build/*.bak

Git 基本指令操作

  • 檢查目前狀態:git status
  • 檢查尚未暫存的檔案異動了那些部分:git diff
  • 查看提交的歷史資料:git log
    • 取消操作: git commit –amend

參考資料