如何在 Git 中停止追蹤並開始忽略檔案


Git是一個有效的版本控制系統,但在某些情況下,最好將某些資訊完全排除在我們的版本控制樹之外。它們可能是臨時檔案、系統檔案或一些不應該提交的機密資料。閱讀本文以瞭解如何取消 Git 正在追蹤的檔案的追蹤,以及如何避免 Git 在將來追蹤新檔案。此外,本文還解釋瞭如何使用git ignore功能來清理工作並避免不必要的檔案。

為什麼要在 Git 中忽略檔案?

在 Git 中忽略檔案可以幫助:

  • 防止敏感資料洩露:憑據或配置檔案最適合不放入 Git 歷史記錄中。
  • 減小儲存庫大小:以前的臨時或生成的記錄檔案有時會使您的儲存庫過於龐大。
  • 簡化版本控制:將這些檔案排除在外可以消除相對簡單的儲存庫中的雜亂。

理解 .gitignore 檔案

.gitignore檔案是一個簡單的文字檔案,它將指示 Git 忽略哪些檔案。您通常將此檔案儲存在專案儲存庫的根目錄中。.gitignore中的每一行或多或少都是 Git 用於確定不應該追蹤哪些檔案或目錄的正則表示式或字串模式。

這是一個 .gitignore 檔案可能的樣子示例:

# Ignore Python compiled files
*.pyc

# Ignore node_modules folder
node_modules/

# Ignore environment files
.env

.gitignore 基本模式

  • 星號 (*):匹配任何字串。
  • 問號 (?):匹配單個字元。
  • 斜槓 (/):匹配目錄。

如何在 Git 中停止追蹤檔案

如果 git 正在追蹤某個檔案,而您希望忽略它,那麼將其新增到.gitignore是不夠的。Git 仍然會追蹤該檔案的更改。為了停止追蹤它,您必須取消它的追蹤。方法如下:

1. 將檔案新增到 .gitignore:您可以開啟.gitignore檔案並指定檔名或檔案的模式。
# Add this file to be ignored
sensitive_data.txt

2. 從追蹤中移除檔案:使用命令 `git rm --cached` 取消追蹤檔案。此命令將檔案從 Git 和工作樹中移除,但不會從計算機的磁碟空間中移除。

git rm --cached sensitive_data.txt

3. 提交更改:取消追蹤檔案後,提交更改。

git commit -m "Stop tracking sensitive_data.txt"

4. 驗證檔案被忽略:現在,您應該透過鍵入 `git status` 來檢查 git 是否忽略了該檔案。如果成功,它不會在要追蹤的檔案列表中顯示該檔案。

專業提示:取消追蹤已儲存在 Git 中並已暫存的檔案時務必小心,因為這些檔案仍然存在於您的儲存庫中。如果需要,您可以使用 `git filter-branch` 或使用第三方工具 BFG Repo-Cleaner 從儲存庫歷史記錄中刪除敏感資料。

如何在 Git 中忽略新檔案

如果您不想讓 Git 從一開始就追蹤新檔案,您只需將它們新增到.gitignore檔案中。方法如下:

1. 開啟或建立 .gitignore 檔案:如果您的儲存庫不包含此重要檔案,請確保將其新增到儲存庫的根目錄。

2. 新增要忽略的檔案或目錄:您需要將檔名或模式輸入到此.gitignore檔案中。

# Ignore all .log files
*.log

# Ignore database credentials
db_credentials.json

3. 儲存並提交 .gitignore 檔案

git add .gitignore
git commit -m "Add .gitignore file to ignore log files and db_credentials.json"

常見錯誤

  1. 未提交 .gitignore:如果您未能建立.gitignore,其他團隊成員將無法理解要排除哪些檔案。
  2. 忽略已被追蹤的檔案:請記住,.gitignore僅適用於未追蹤的檔案。如果檔案已被追蹤,則必須使用`git rm --cached`
  3. 使用不正確的模式:再次檢查.gitignore檔案的語法。例如,如果他們的計劃是忽略所有副檔名為 .log 的檔案,則只需編寫 `*.log` 而不是 `.log`。

忽略 Git 檔案的高階技巧

1. 全域性 .gitignore:如果您想忽略計算機上每個 Git 儲存庫中的檔案,請配置全域性.gitignore檔案。

git config --global core.excludesfile ~/.gitignore_global

2. 在本地環境中忽略追蹤的檔案:但有時您可能希望在本地忽略檔案,而不會對團隊的其他成員產生任何影響。為此,您可以使用.git/info/exclude,這類似於.gitignore,但僅適用於每臺本地機器。

快速參考命令

以下是關鍵命令的摘要

命令描述
`echo filename > .gitignore`將檔案新增到 .gitignore
`git rm --cached filename`停止追蹤檔案而不刪除它
`git add .gitignore`暫存 .gitignore 更改
`git commit -m "message"`提交 .gitignore 更改
`git config --global core.excludesfile`

設定全域性 .gitignore

結論

瞭解如何有效地使用.gitignore將有助於使 Git 儲存庫不那麼臃腫,並使版本控制更容易。在本文中,我們解釋瞭如何指示 Git 不要追蹤您的檔案或刪除 Git 已編入索引的檔案,如果您不希望在專案中使用這些資料,這將非常有用。

更新於:2024年11月4日

瀏覽量:21

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.