有效管理 Git 儲存庫通常涉及清除緩存,以確保正確識別追蹤檔案或目錄結構中的變更。 Git 快取有時會保留過時的訊息,導致儲存庫中出現不一致。清除 Git 快取是一個簡單的過程,有助於維護準確且最新的工作目錄。
本指南將示範如何使用命令列終端清除 Git 快取。無論您是要解決被忽略檔案的問題、更新儲存庫結構還是確保準確追蹤更改,這些步驟都將幫助您有效管理 Git 快取。
清除整個 Git 快取的命令
當 .gitignore 似乎忽略更改或需要刷新索引以準確反映追蹤和未追蹤檔案的當前狀態時,清除 Git 快取至關重要。此操作會強制 Git 重新評估您的 .gitignore 設置,從而忽略不應追蹤的文件。
導航到您的儲存庫
首先打開一個終端機。若要存取專案的目錄,請使用 cd 指令,後面接著 Git 儲存庫的路徑。此步驟可確保您在要執行的 Git 指令的正確上下文中運作。
cd ~/your-git-repository
刪除快取文件
接下來,清除 Git 快取。此步驟不會影響您的本機文件,但會從 Git 索引中刪除所有文件。命令 git rm -r –cached 遞歸地從快取中刪除文件,為重新開始做好準備。
git rm -r --cached .
執行此命令後,Git 的索引為空,但本機磁碟上的檔案保持不變。
重置 Git 索引
重設 Git 索引可確保您的下一次提交準確反映專案的當前狀態,減去您打算忽略的文件。
git reset .
此命令刷新暫存區域,有效地將其與上次提交同步,同時遵守 .gitignore 規則。
驗證更改
檢查儲存庫的狀態至關重要。此命令提供目前狀態的快照,顯示哪些文件未追蹤、已修改或準備提交。
git status
重新新增文件
若要將檔案重新新增至 Git 索引(這次不包括 .gitignore 中指定的檔案),請使用下列命令。它尊重您的 .gitignore 設置,僅添加應跟踪的文件。
git add .
提交快取清除更改
若要完成流程,請提交變更。此步驟將快取重置記錄在儲存庫的歷史記錄中,確保快取清除具有參考點。
git commit -am 'Reset the entire repository cache.'
此命令提交所有當前更改,將 Git 快取的重置嵌入項目的提交歷史記錄中。
清除特定檔案的 Git 快取的命令
請依照以下步驟選擇性地從 Git 快取中刪除檔案或目錄,而無需清除整個快取。該方法有利於在較小範圍內修正跟踪誤差。
從 Git 快取中刪除單一文件
如果您需要取消追蹤錯誤新增至 Git 儲存庫的單一文件,您可以將其從快取中刪除,而無需從本機檔案系統中刪除它。
git rm --cached your-file-here.txt
此指令更新 Git 索引,以便指定的檔案在保留在工作目錄中時不再被追蹤。
清除目錄的 Git 快取
對於目錄,過程類似。透過使用 -r(遞歸)選項,您可以從 Git 快取中刪除整個目錄。
git rm -r --cached ./your/directory/here
這有效地停止追蹤目錄及其內容,遵守 .gitignore 中的任何更新,而不影響這些檔案或目錄的本機副本。
驗證並提交更改
從快取中刪除特定項目後,使用 git status 驗證變更非常重要。這顯示當前的追蹤狀態以及不再追蹤的任何文件。
git status
然後,提交變更以確保從快取中刪除的特定檔案或目錄記錄在儲存庫的歷史記錄中。
git commit -am 'Removed specific items from the cache.'
清除 Git 快取的憑證
安全地管理快取的憑證至關重要,尤其是在共享系統上,快取憑證可能會帶來安全風險。
清除 Git 憑證的命令
第一步是導航到您的儲存庫。從那裡,您可以使用 Git 的內建工具清除快取的憑證,這些工具會根據您配置 Git 處理憑證的方式而有所不同。
如果您使用 Git 的憑證緩存,可以使用以下命令清除它:
git credential-cache exit
或者,如果您的憑證更永久地存儲,您可能需要直接編輯 .gitconfig 或使用 git config 命令取消設定憑證助理:
git config --global --unset credential.helper
這些命令有助於確保您的憑證的儲存時間不會超過必要的時間,從而保護您的儲存庫。
Git 儲存庫管理的附加指令
除了清除 Git 快取和管理憑證的核心命令之外,還有其他實踐可以增強您的 Git 體驗並確保您的儲存庫保持乾淨和高效。
檢視.gitignore的有效性
對 .gitignore 檔案進行變更或清除快取後,最好驗證 .gitignore 是否如預期運作。 Git 提供了一個專門用於此目的的工具:
git check-ignore -v PATH_TO_FILE
此命令不僅告訴您文件是否被忽略,還指定哪個 .gitignore 規則負責該行為。這是調試和確認 .gitignore 規則是否正確應用的好方法。
對個人文件使用全域 .gitignore
開發人員經常使用會產生您不想在每個專案中追蹤的本機檔案的工具(例如編輯器配置或特定於作業系統的檔案)。您可以建立一個全域 .gitignore 文件,而不是將它們新增到每個專案的 .gitignore 中:
git config --global core.excludesfile '~/.gitignore_global'
定期修剪您的儲存庫
Git 儲存對物件(提交、樹、blob 等)的引用,這些物件隨著時間的推移可能會變得過時。修剪這些物件有助於減少混亂並提高效能:
git gc --prune=now
此命令會清理不必要的檔案並優化儲存庫的儲存。
利用 Git Hooks 實現自動化
Git 掛鉤可讓您根據 Git 事件自動執行特定操作,例如預先提交檢查、自動測試或允許提交先前的 linting:
cd .git/hooks
瀏覽此目錄以查看 Git 提供的範例掛鉤。重新命名範例(透過從檔案名稱中刪除 .sample)並自訂它可以讓您自動執行各種任務,從而增強您的工作流程。
讓您的分行井井有條
隨著專案的成長,分支機構的數量也會增加。定期清理合併或過時的分支有助於保持儲存庫可導航:
git branch --merged | egrep -v "(^\*|master|main)" | xargs git branch -d
此命令列出合併到目前分支(不包括 master 或 main)的分支,並將其刪除。這是在功能開發或錯誤修復後進行清理的快速方法。
結論:使用清除快取指令增強 Git 工作流程
我們介紹了幾個用於清除伺服器上的 Git 快取的命令,從清除整個快取到選擇檔案和目錄,甚至處理快取的憑證。此外,我們還提供了一些提示,以確保您的 .gitignore 檔案正常運作並保持流暢的工作流程。定期維護(例如修剪和全域 .gitignore 設定)可以防止將來出現問題。將這些命令放在手邊,以避免混亂並維護整潔的 Git 儲存庫。