## git log 自訂格式
預設的 `git log --oneline` 是一個固定的快捷格式,它**無法**直接透過參數「外掛」時間進去。
如果你想保有 `--oneline` 那種簡潔感,但又要看到時間,你需要自定義 `--pretty=format`。
### 🛠️ 推薦的替代指令
你可以根據你對時間格式的喜好選擇以下其中一種:
#### 1. 顯示「日期」(YYYY-MM-DD)
最整齊的格式,適合快速對照日期。
```bash
git log --graph --pretty=format:'%C(yellow)%h%Creset - %C(green)%ad%Creset %s' --date=short
```
#### 2. 顯示「相對時間」(多久以前)
如果你想知道這是不是最近改的(例如:2 hours ago)。
```bash
git log --graph --pretty=format:'%C(yellow)%h%Creset - %C(green)%ar%Creset %s'
```
#### 3. 顯示「精確時間」(日期 + 時分秒)
```bash
git log --graph --pretty=format:'%C(yellow)%h%Creset - %C(green)%cd%Creset %s' --date=format:'%Y-%m-%d %H:%M:%S'
```
---
### 🔍 參數細節拆解
為了讓你方便自己調整,這裡解釋一下上面用到的代碼:
| 代碼 | 作用 |
| --- | --- |
| **`%h`** | 提交的短雜湊值 (Hash) |
| **`%ad`** | 作者日期 (Author Date) |
| **`%ar`** | 相對作者日期 (Relative Date) |
| **`%s`** | 提交訊息摘要 (Subject) |
| **`%C(顏色)...%Creset`** | 設定文字顏色,讓 Hash 變黃、日期變綠,視覺上更好辨識 |
| **`--date=xxx`** | 指定日期的顯示格式 (short, relative, iso, etc.) |
---
### 🛠️ 終極進化版:Hash + 分支 + 日期 + 訊息
這是我最推薦的開發者常用指令,它能在保持單行的同時,一眼看清所有重點:
```bash
git log --graph --pretty=format:'%C(yellow)%h%Creset %C(green)%ad%Creset %C(auto)%d%Creset %s' --date=short
```
---
### 🔍 參數細節說明
我們在之前的基礎上新增了分支顯示:
| 代碼 | 作用 |
| --- | --- |
| **`%C(auto)%d`** | **核心新增**。顯示分支名稱與標籤。使用 `auto` 會讓 Git 自動幫分支上綠色、遠端分支上紅色、標籤上黃色。 |
| **`%C(yellow)%h`** | 短 Hash 值(黃色)。 |
| **`%C(green)%ad`** | 日期(綠色)。 |
| **`%s`** | 提交訊息。 |