如何在 Git 中取消檔案的跟蹤

槑孒發表於2024-08-16

如何在 Git 中取消檔案的跟蹤

在使用 Git 進行版本控制時,檔案可能最初被跟蹤,但隨著專案的發展,有時需要取消對這些檔案的跟蹤。本文介紹如何在不同情況下取消檔案或目錄的 Git 跟蹤。

1. 取消對已經被 Git 跟蹤的檔案的跟蹤

如果某個檔案已經新增到 Git 並被提交,但現在不希望 Git 繼續跟蹤它,同時保留本地檔案,可以按照以下步驟操作:

1.1 將檔案新增到 .gitignore

首先,將不希望繼續跟蹤的檔案路徑新增到專案的 .gitignore 檔案中。例如,要忽略 config/settings.json 檔案,在 .gitignore 中新增:

config/settings.json

1.2 使用 git rm --cached 命令取消檔案跟蹤

接著,使用 git rm --cached 命令移除對該檔案的跟蹤。此命令會將檔案從 Git 的索引中刪除,但不會刪除本地檔案。執行以下命令:

git rm --cached config/settings.json

1.3 提交更改

將更改提交到倉庫:

git commit -m "Stop tracking config/settings.json"

透過上述操作,Git 將不再跟蹤該檔案,且本地檔案不會被刪除。

2. 取消對整個目錄的跟蹤

如果不希望 Git 繼續跟蹤某個目錄中的所有檔案,可以按照以下步驟操作:

2.1 將目錄新增到 .gitignore

將要忽略的目錄路徑新增到 .gitignore 檔案中,例如:

logs/

這樣可以忽略 logs 目錄中的所有檔案。

2.2 使用 git rm -r --cached 命令取消目錄跟蹤

使用 git rm -r --cached 命令取消對整個目錄的跟蹤。此命令會遞迴地將目錄及其所有檔案從 Git 的索引中移除。執行以下命令:

git rm -r --cached logs/

2.3 提交更改

將更改提交到倉庫:

git commit -m "Stop tracking logs directory"

透過這一步,Git 將不再跟蹤 logs 目錄中的所有檔案,但它們會保留在本地檔案系統中。

3. 忽略未來的檔案更改

如果不想完全停止跟蹤某個檔案,而是希望 Git 忽略它的未來改動,可以使用 git update-index 命令。

3.1 使用 git update-index --assume-unchanged 忽略更改

要讓 Git 忽略某個檔案的改動,可以使用以下命令:

git update-index --assume-unchanged <file>

例如:

git update-index --assume-unchanged config/settings.json

此命令告訴 Git 假定該檔案未被修改,即使檔案發生了更改,Git 也不會提示該檔案有未提交的變動。

3.2 恢復檔案的跟蹤

如果之後需要恢復對該檔案的正常跟蹤,可以使用以下命令:

git update-index --no-assume-unchanged <file>

結語

在 Git 中取消檔案或目錄的跟蹤是一個常見需求。無論是完全停止對某個檔案或目錄的跟蹤,還是臨時忽略檔案的改動,都可以透過簡單的命令實現。這些方法可以幫助更靈活地管理 Git 倉庫中的檔案跟蹤情況。

相關文章