Appearance
以樹狀圖的形式展示目錄結構。它能幫你快速了解專案的層級,同時過濾掉不需要看到的雜訊。
powershell
tree -L 3 -I 'node_modules|.git|dist|build|coverage' .將結果複製透過 ``` 包起來就可以在 md 顯示樹狀結構
指令拆解分析
| 組件 | 完整名稱 / 功能 | 詳細解釋 |
|---|---|---|
tree | Tree | 核心指令,將目錄內容以樹狀結構列印出來。 |
-L 3 | Level (層級) | 限制顯示的最大深度。3 代表只顯示到第三層子目錄,防止專案太深導致輸出過長。 |
-I '...' | Ignore (忽略) | 排除模式。這後面接的是一個正則表達式,用來過濾掉不想顯示的資料夾。 |
| **`'node_modules... | out'`** | Pattern (匹配對象) |
. | Current Directory | 代表「當前目錄」。告訴 tree 從哪裡開始掃描。 |
進階常用參數(推薦搭配)
如果你想要更精確的輸出,可以嘗試加入這些參數:
-a: 顯示隱藏檔案(預設會跳過以.開頭的檔案)。-d: 只顯示資料夾,不顯示檔案(讓結構更清爽)。-f: 顯示完整路徑。-N: 如果檔名有中文,加入此參數可防止中文變成亂碼(轉義字元)。
讓 Git 暫時忽略掉已經被追蹤(Tracked)的檔案變更
powershell
git update-index --assume-unchanged這是在做什麼?
通常情況下,如果你修改了一個已經在 Git 倉庫裡的檔案,git status 會顯示它被更動了。但有時候我們希望:
- 本地修改但不提交:例如本地的設定檔、金鑰,或者為了測試而暫時修改的程式碼。
- 對 AI 隱藏/避免混淆:如圖中紅字所述,這可以防止某些檔案(例如
.github/資料夾下的 Workflows)被 AI 工具讀取或在版控中頻繁出現,維持工作區的潔淨。
指令解析
1. Bash / Zsh (適用於 macOS, Linux, WSL)
bash
git ls-files '.github/*' | while read -r file; do
git update-index --assume-unchanged "$file"
donegit ls-files '.github/*':列出.github/目錄下的所有檔案。while read -r file; do ... done:將檔案列表一行行讀入並執行後續動作。--assume-unchanged:標記這些檔案為「假設未改變」。即使你改了它們,Git 也會假裝沒看到。
2. PowerShell (適用於 Windows)
powershell
git ls-files '.github/*' | ForEach-Object {
git update-index --assume-unchanged $_
}- 功能與上方完全相同,只是使用了 PowerShell 的管線(Pipeline)語法
ForEach-Object。
如何恢復?
如果你之後想要讓 Git 重新追蹤這些檔案的變更,可以使用 --no-assume-unchanged:
- 恢復單一檔案:
git update-index --no-assume-unchanged <file_path> - 查看目前有哪些檔案被「隱藏」了:
git ls-files -v | grep "^h"(開頭為小寫h的就是被標記為 assume-unchanged 的檔案)
小提醒: 這只是「本地」的標記,不會影響到遠端倉庫(Remote),也不會影響其他協作者。