DevToolPal
繁

.gitignore 產生器

依語言、框架、編輯器和作業系統組合範本,一鍵產生 .gitignore 檔案。

本機處理,不會上傳

選項

範本 · 已選 4 個
語言
框架
建置與基礎設施
遊戲引擎
編輯器與 IDE
作業系統
其他

.gitignore

0 字元 · 0 B

這個工具做什麼

.gitignore 產生器把現成的範本組合成儲存庫用的 .gitignore 檔案。選出專案涉及的語言、框架、建置工具、遊戲引擎、編輯器和作業系統,工具會把它們的規則合併成一個檔案,每個部分前面有 ### 名稱 ### 標題,可以直接複製或下載。

內建大約六十個來自 github/gitignore 的範本:Node.js、Python、Java、Go、Rust、.NET、Swift,Laravel、Symfony 等 PHP 框架,Next.js、Flutter、Android、Terraform、Unity、Unreal Engine、Godot,VS Code、JetBrains 系列 IDE、Vim、Emacs,以及 macOS、Windows、Linux 等。全部在瀏覽器裡完成,不會發出任何請求。

使用方法

  1. 在清單裡點選範本即可加入。用搜尋框能快速找到,它也認得常見別名,例如輸入「typescript」會找到 Node.js,「intellij」會找到 JetBrains。
  2. 已選的範本依點選順序顯示在頂部,產生的檔案也依這個順序排列。點一下標籤可以移除,點清空重新開始。
  3. 專案特有的項目寫在自訂規則裡,用逗號分隔,例如 .env, /dist, *.local,會附加到檔案末尾的 ### Custom ### 部分。
  4. 選擇是否保留範本裡的說明註解,以及是否移除前面範本已經寫過的規則。
  5. 複製結果或下載。下載的檔名是 .gitignore,放到儲存庫根目錄即可。

選擇會儲存在頁面網址裡,加入書籤或分享連結就能得到同樣的檔案。

範例

選擇 Node.js、macOS 和 VS Code,自訂規則填 .env.local,關閉註解,得到的檔案大致如下(有刪節):

### Node.js ###
logs
*.log
npm-debug.log*
…
node_modules/
…

### macOS ###
.DS_Store
.AppleDouble
.LSOverride
…

### VS Code ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
!*.code-workspace
*.vsix

### Custom ###
.env.local

以 ! 開頭的規則會把前面排除的內容重新納入:這裡共用的 VS Code 設定、工作和偵錯設定留在儲存庫裡,個人的編輯器狀態則被忽略。如果再把 .env 加進自訂規則,結果不會改變,因為 Node.js 範本裡已經有這一條。

小提示

  • 個人工具相關的規則(編輯器交換檔、系統中繼資料)放進全域忽略檔,所有儲存庫都能受益,不必每個專案都寫一遍。
  • 結尾帶斜線的 build/ 只符合目錄;開頭帶斜線的 /build 只符合儲存庫根目錄下的那一個。
  • 用 git check-ignore -v <路徑> 可以查看某個路徑被哪個檔案的哪一行規則忽略。
  • 已經提交過的金鑰不能靠 .gitignore 保護:應當立即更換金鑰並清理歷史紀錄。

常見問題

› 範本來自哪裡?

來自 GitHub 官方的 github/gitignore 範本庫,該庫以 CC0 公眾領域協議發布。範本隨頁面一起打包,使用時不會從網路下載任何內容。

› 為什麼加進 .gitignore 之後檔案還在被追蹤?

.gitignore 只對未追蹤的檔案生效。檔案如果以前已經提交過,需要用 git rm --cached <檔案>(資料夾加 -r)把它移出索引再提交;檔案仍留在磁碟上,之後就會被忽略。

› 「移除重複規則」是做什麼的?

很多範本有相同的規則:Java 和 Kotlin 都忽略 *.class,C 和 C++ 都忽略 *.o。開啟這個選項後,同一條規則只在第一次出現時寫入,規則全部被移除的註解標題也會一起刪掉。關閉它就會得到和官方發布完全一致的每個範本。

› .gitignore 檔案要提交嗎?

要。提交後的 .gitignore 對所有複製儲存庫的人生效。只和你自己電腦有關的規則(例如編輯器、作業系統)也可以放進全域忽略檔(git config --global core.excludesFile ~/.gitignore_global)。