Git 常用技巧
建立全域設定檔
# Using git to edit the configuration
git config global --edit
# Using vi/cat to edit the configuration
vi ~/.gitconfig
# Set default email address and name
git config --global user.email "alang.hsu@gmail.com"
git config --global user.name "Alang Hsu"
# Set default editor
git config --global core.editor "vi"
# Set default branch name
git config --global init.defaultBranch "main"
.gitconfig
[user]
email = alang.hsu@gmail.com.com
name = Alang Hsu
[core]
editor = vi
[init]
defaultBranch = main
目錄更名
專案目錄下的檔案或子目錄的更名動作,必須使用 git 指令。
git mv <old-folder> <new-folder>
Commit 訊息
簡單的 commit 訊息
git commit -m "Fixed a typo in somewhere"
比較複雜的訊息
# 設定 Vim 作為編輯器
git config --global core.editor "vim"
# 不要加 -m 參數
git commit
Commit 訊息編寫原則
- 用一行空白行分隔標題與內容
- 限制標題最多只有 50 字元
- 標題開頭要大寫
- 標題不以句點結尾
- 以祈使句撰寫標題
- 內文每行最多 72 字
- 用內文解釋 what 以及 why vs. how
檢視 Comments
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
修改最後一筆 Comment
git commit -v --amend
Clone
# Specified version
git clone -b 8.3.0 https://github.com/OpenSIPS/opensips-cp.git /var/www/opensips-cp
SSH Key Authentication
# 建立 ssh-key
# 預設路徑: ~/.ssh/id_rsa (private key) , ~/.ssh/id_rsa.pub (public-key)
ssh-keygen -t rsa -b 4096 -C "alang@my-linux-desktop"
# Gitlab 網站匯入 public ssh-key
# 測試 ssh key authentication
# 如果輸出 Welcome to GitLab, @alang! 表示連線認證成功
ssh -T git@gitlab.shurafom.eu
# 下載專案
# NOTE: 位址必須是 git@XXX.xxx.xxx 開頭。
# 如果使用 https:// 則必須改用 Personal Token 認證方式
git clone git@gitlab.shurafom.eu:myproject/myprog.git