﻿# 如何設定 git ignore 命令並自動下載所需的 .gitignore 範本

每次開發一個新專案，多多少少都會需要手動加入 `.gitignore` 檔案。如果用 Visual Studio 2019 建立專案時加入 Git 版控，工具會自動幫你新增 `.gitignore` 檔案。但若用 `dotnet new` 建立專案時就不會自動建立 `.gitignore` 檔案了。本篇文章我將介紹一個好用工具，可以讓你很便利的快速產生專案所需的 `.gitignore` 檔案。

### 簡介 gitignore.io 網站

[gitignore.io](https://www.gitignore.io/) 網站收集了各種不同程式語言、開發框架、開發工具所需的 `.gitignore` 檔案範本。除了可以線上下載外，也同時提供 Web API 可以呼叫，相當便利。

![gitignore.io](https://stwillblogassets.blob.core.windows.net/files/images/external/user-images.githubusercontent.com/4bd3516f871fbde06c06-82759159-1ebafd80-9e1e-11ea-9f51-5bd1e7789266.jpg)

### 簡介 gitignore.io 網站提供的 Web API

無論你是用 Command Prompt (命令提示字元) 還是 Windows PowerShell，或你是在 Linux / macOS 環境下，都可以輕鬆透過 `git config` 命令設定 alias (指令別名)，讓你可以設定簡易的 bash 函式，呼叫 [gitignore.io](https://www.gitignore.io/) 網站提供的 API 服務。

該網站其實主要也只有兩個**端點**可用：

1.  列出所有範本清單
    
    ```
    https://www.gitignore.io/api/list
    ```
    
2.  取得特定範本內容
    
    ```
    https://www.gitignore.io/api/{types}
    ```
    

例如你要取得 `VisualStudio` 範本的內容，就可以直接呼叫 [https://www.gitignore.io/api/visualstudio](https://www.gitignore.io/api/visualstudio) 即可取得 `.gitignore` 所需的內容。

如果你想取得 `dart` 與 `flutter` 的範本，就可以直接呼叫 [https://www.gitignore.io/api/dart,flutter](https://www.gitignore.io/api/dart,flutter) 網址，就是這麼簡單！

### 設定 git ignore 自訂命令

我們在設定 git 的 alias 自訂命令時，其實是跑在 bash 模式下，即便是 Windows 電腦，也是會跑在 [mingw-w64](https://www.mingw-w64.org/) 環境下。

另一方面，由於 Windows 10 內建了 Linux 常見的 `curl` 命令，因此我們可以很簡單的透過 curl 來下載 gitignore.io 網站提供的 `.gitignore` 範本內容！即便你的 Windows 沒有內建 cURL 命令，也可以到官網特別下載 [curl for Windows](https://curl.haxx.se/windows/) 來用！

雖然在 [gitignore.io](https://www.gitignore.io/) 網站有個 [Command Line](https://docs.gitignore.io/install/command-line) 文件，洋洋灑灑寫了一堆設定。但在我研究後發現，根本不用設定這麼多。以下這個命令就可以適用所有的作業系統平台與 Shell 環境，而且透過 `git ignore` 這樣的 alias 下去執行，也是相當好記。以下就是設定的方式，一行命令搞定！

```bash
git config --global alias.ignore "!gi() { curl -sL https://www.gitignore.io/api/$@ ;}; gi"
```

> **請注意**：官網提供的命令是以「單引號」包含字串，但這個設定並不適用於 Windows 的命令提示字元，建議改用「雙引號」，就可以同時適用於 Windows/Linux/macOS 所有的 Shell 執行環境。不過還是要設定一下驚嘆號的跳脫字元才能執行！

如果使用 bash 的話，請執行以下命令：

```bash
git config --global alias.ignore '!'"gi() { curl -sL https://www.gitignore.io/api/\$@ ;}; gi"
```

設定完成後，無論你在哪個環境，都可以用以下命令來存取 [gitignore.io](https://www.gitignore.io/) 網站的 API，例如：

-   取得範本清單
    
    ```
    git ignore list
    ```
    
-   下載 `VisualStudio` 範本
    
    ```
    git ignore visualstudio > .gitignore
    ```
    
-   同時下載 `VisualStudio` 與 `ASPNETCore` 範本
    
    ```
    git ignore visualstudio,aspnetcore > .gitignore
    ```
    

### 快速調整 Git 設定的小工具

我在今年(2020)二月的時候，曾經分享過一套 [@willh/git-setup](https://www.npmjs.com/package/@willh/git-setup) 小工具，只要你的電腦有安裝 [Node.js](https://nodejs.org/en/)，就可以快速透過 `npx @willh/git-setup` 命令設定完所有常見的 `git config` 與 `git alias`，尤其是在 Windows 平台經常會有中文亂碼的問題，透過我的小工具設定完之後，幾乎所有常見的問題都可以被完美解決！

我剛剛也將本篇文章的設定加入該工具了，也就是說，當你換新電腦的時候，只要透過以下命令執行一次，就可以快速完成 Git 相關設定！ 👍

```bash
npx @willh/git-setup
```

### 相關連結

-   [gitignore.io - Create Useful .gitignore Files For Your Project](https://www.gitignore.io/)
    -   [Command Line - Docs](https://docs.gitignore.io/install/command-line)
-   [@willh/git-setup - npm](https://www.npmjs.com/package/@willh/git-setup)
