如何在 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 倉庫中的檔案跟蹤情況。