---
# System prepended metadata

title: Swift裡面的.gitignore
tags: [Medium, Swift, UIkit, iOS Development]

---


# .gitignore
---

初學者在處理API時，時常將API Key直接放入Xcode專案中，但這種做法非常不安全。若專案是公開的，有心人可能有機會濫用這個key去存取您個人資料。

為防止這種情況，開發者使用.gitignore文件。它可以指定Git忽略特定文件，避免**機密資料**被提交到版本控制系統。

然而，.gitignore只是想辦法保密的一部分。開發者還應考慮使用環境變數或加密的密鑰管理服務等進階方法。

採取這些措施可有效降低資訊洩露風險，同時維持良好的開發實踐。

---

![](https://cdn-images-1.medium.com/max/2000/0*BpywFARz7QjSlhCi)

### **.gitignore** 是什麼? 

**.gitignore** 是一個用於 Git 版本控制系統(Version Control)的特殊文件。

它的主要功能是告訴 Git 哪些文件和目錄應該被忽略，不會被git追蹤。

這不僅僅是為了**”不給人家看”**,還有其他重要原因:

 1. 保護個資: 例如 Personal token, API key不會被加入git裡面。

 2. 避免過多不必要的文件: 有時候我們會有一些自動生成的檔案，這時候是可以包在裡面的，避免檔案過多。

之前有看到[**彼得潘**](https://medium.com/%E5%BD%BC%E5%BE%97%E6%BD%98%E7%9A%84-swift-ios-app-%E9%96%8B%E7%99%BC%E5%95%8F%E9%A1%8C%E8%A7%A3%E7%AD%94%E9%9B%86/%E5%88%A9%E7%94%A8-run-script-%E5%92%8C-gitignore-%E7%AE%A1%E7%90%86-api-key-%E9%98%B2%E6%AD%A2%E5%AE%83%E4%B8%8A%E5%82%B3%E5%88%B0-github-c84ce81cf010)分享過一篇文章，用Google AI SDK for Swift，並且用Run script的方式，可以直接防止API key上傳到GitHub，這是一個蠻省事、方便的作法。

另外一個作法，就是用Command line tool(我們在MacOS裡面叫Terminal)去做Version Control。

---

由於我之前有做一個side project: [**Drink Order App**](https://medium.com/%E5%BD%BC%E5%BE%97%E6%BD%98%E7%9A%84-swift-ios-app-%E9%96%8B%E7%99%BC%E6%95%99%E5%AE%A4/hw-50-drink-order-app-1-get-6d4f7566c6f5)，但我沒有做好Version Control，因此API Key就赤裸裸地展露在外面，所以我以修改這個side project為範例作紀錄。

![](https://cdn-images-1.medium.com/max/2000/0*7ndA-Fe6ftqqZNRf.gif)

# 將 NetworkManager.swift 添加到 .gitignore 並停止追踪

由於我把這個檔案 NetworkManager.swift 的檔案放到 .gitignore 裡，以下是操作步驟：

1. 用 git clone 下載我做的 side project：

```bash
git clone https://github.com/dwhao84/DrinkOrderApp.git
```

2. 檢查 .gitignore 文件的内容：

```bash
cat .gitignore
```

3. 如果文件已经被 Git 追蹤的話，我會需要取消 git 的追蹤：
   (rm 就是 remove 的意思)

```bash
git rm --cached DrinkOrderApp/Managers/NetworkManager.swift
```

4. Commit 這個更改，並說明內容：

```bash
git commit -m "從git中NetworkManager.swift"
```

5. push 到 GitHub (Remote repository)：

```bash
git push origin main
```

這樣就大功告成了～
![](https://cdn-images-1.medium.com/max/2000/0*FUFqCvudL6X28NyA.gif)

---

### Reference:

[**【狀況題】有些檔案我不想放在 Git 裡面... - 為你自己學 Git | 高見龍**
](https://gitbook.tw/chapters/using-git/ignore)

[**利用 Run Script 和 .gitignore 管理 API key，防止它上傳到 GitHub**](https://medium.com/%E5%BD%BC%E5%BE%97%E6%BD%98%E7%9A%84-swift-ios-app-%E9%96%8B%E7%99%BC%E5%95%8F%E9%A1%8C%E8%A7%A3%E7%AD%94%E9%9B%86/%E5%88%A9%E7%94%A8-run-script-%E5%92%8C-gitignore-%E7%AE%A1%E7%90%86-api-key-%E9%98%B2%E6%AD%A2%E5%AE%83%E4%B8%8A%E5%82%B3%E5%88%B0-github-c84ce81cf010)


