git rerere

Posted by Eirik on 6 Apr, 2024

git rerere 是 Git 中的一個功能,全名是 “reuse recorded resolution”

意思是重複使用已記錄的解決方案。當你在合併分支或應用補丁時,常常會遇到需要手動解決的衝突情況。但是如果你在解決一個衝突時使用了 git rerere,它會記錄下解決方案,以便在將來遇到相同的衝突時自動應用之前記錄的解決方案,從而減少手動解決衝突的工作量。

要使用 git rerere,首先確保已啟用它。你可以通過以下命令檢查:

git config --global rerere.enabled true

接下來,你可以執行以下步驟來使用 git rerere

  1. 啟用 git rerere:在執行任何可能會產生衝突的操作之前,確保啟用了 git rerere,如上述命令所示。

  2. 解決衝突:在遇到衝突後手動解決它。 將解決方案添加到暫存區:使用 git add 命令將解決方案添加到暫存區。 記錄解決方案:執行 git rerere 命令來記錄解決方案。

    git add .
    git rerere
    
  3. 提交解決方案:提交包含衝突解決方案的更改。

  4. 在將來重複使用解決方案:當你再次遇到相同的衝突時,git rerere 將會自動應用之前記錄的解決方案。

git rerere 提供了一種自動化的方式來處理衝突,使得 Git 工作流更加高效和順暢。

衝突解決方案記錄在 Git 的儲存目錄 .git/rr-cache 目錄下。

這個目錄通常位於你的項目的 .git 目錄下,它是 Git 使用的內部目錄之一,用於存儲各種raw data和cache。