[{"data":1,"prerenderedAt":163},["ShallowReactive",2],{"term-g\u002Fgit-rerere":3,"related-g\u002Fgit-rerere":148},{"id":4,"title":5,"acronym":6,"body":7,"category":129,"description":130,"difficulty":131,"extension":132,"letter":133,"meta":134,"navigation":135,"path":136,"related":137,"seo":142,"sitemap":143,"stem":146,"subcategory":6,"__hash__":147},"terms\u002Fterms\u002Fg\u002Fgit-rerere.md","Git Rerere",null,{"type":8,"value":9,"toc":123},"minimark",[10,15,19,23,26,30,112,116,119],[11,12,14],"h2",{"id":13},"eli5-the-vibe-check","ELI5 - The Vibe Check",[16,17,18],"p",{},"Rerere stands for reuse recorded resolution, and it's git remembering how you resolved a merge conflict so it never has to bother you with the exact same conflict again. Rebasing the same long-lived branch for the tenth time and manually fixing the same three-line conflict every single time? Turn on rerere once, and git just applies your previous fix automatically from then on.",[11,20,22],{"id":21},"real-talk","Real Talk",[16,24,25],{},"git rerere (reuse recorded resolution) records the state of a conflict and its resolution the first time a developer resolves it manually, then automatically reapplies that same resolution if an identical conflict recurs, which commonly happens during repeated rebases of a long-lived branch against a moving target. It is disabled by default and enabled per repository with git config rerere.enabled true.",[11,27,29],{"id":28},"show-me-the-code","Show Me The Code",[31,32,37],"pre",{"className":33,"code":34,"language":35,"meta":36,"style":36},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","$ git config rerere.enabled true\n$ git rebase main\n# resolve the conflict once by hand, then:\n$ git add . && git rebase --continue\n# next rebase, the same conflict auto-resolves\n","bash","",[38,39,40,63,76,83,106],"code",{"__ignoreMap":36},[41,42,45,49,53,56,59],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sBMFI","$",[41,50,52],{"class":51},"sfazB"," git",[41,54,55],{"class":51}," config",[41,57,58],{"class":51}," rerere.enabled",[41,60,62],{"class":61},"sMK4o"," true\n",[41,64,66,68,70,73],{"class":43,"line":65},2,[41,67,48],{"class":47},[41,69,52],{"class":51},[41,71,72],{"class":51}," rebase",[41,74,75],{"class":51}," main\n",[41,77,79],{"class":43,"line":78},3,[41,80,82],{"class":81},"sHwdD","# resolve the conflict once by hand, then:\n",[41,84,86,88,90,93,96,99,101,103],{"class":43,"line":85},4,[41,87,48],{"class":47},[41,89,52],{"class":51},[41,91,92],{"class":51}," add",[41,94,95],{"class":51}," .",[41,97,98],{"class":61}," &&",[41,100,52],{"class":47},[41,102,72],{"class":51},[41,104,105],{"class":51}," --continue\n",[41,107,109],{"class":43,"line":108},5,[41,110,111],{"class":81},"# next rebase, the same conflict auto-resolves\n",[11,113,115],{"id":114},"when-youll-hear-this","When You'll Hear This",[16,117,118],{},"\"Turn on rerere before you rebase this branch for the fifth time this week.\" \u002F \"Rerere just auto-fixed the merge conflict we've hit every rebase.\"",[120,121,122],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":36,"searchDepth":65,"depth":65,"links":124},[125,126,127,128],{"id":13,"depth":65,"text":14},{"id":21,"depth":65,"text":22},{"id":28,"depth":65,"text":29},{"id":114,"depth":65,"text":115},"git","Rerere stands for reuse recorded resolution, and it's git remembering how you resolved a merge conflict so it never has to bother you with the exact same c...","advanced","md","g",{},true,"\u002Fterms\u002Fg\u002Fgit-rerere",[138,139,140,141],"Rebase","Long-Lived Branch","Semantic Conflict","Merge",{"title":5,"description":130},{"changefreq":144,"priority":145},"weekly",0.7,"terms\u002Fg\u002Fgit-rerere","RL3sEW_Iq933fICra-JIBm4b_1OV8Q-0gXt2QS7UbGI",[149,153,157,160],{"title":139,"path":150,"acronym":6,"category":129,"difficulty":151,"description":152},"\u002Fterms\u002Fl\u002Flong-lived-branch","intermediate","A long-lived branch is the feature branch that was supposed to take three days and is now somehow eight weeks old, quietly drifting further from main every...",{"title":141,"path":154,"acronym":6,"category":129,"difficulty":155,"description":156},"\u002Fterms\u002Fm\u002Fmerge","beginner","Merge is like combining two parallel universes back into one. You take the changes from your branch and smoosh them into another branch.",{"title":138,"path":158,"acronym":6,"category":129,"difficulty":131,"description":159},"\u002Fterms\u002Fr\u002Frebase","Rebase is like rewriting history.",{"title":140,"path":161,"acronym":6,"category":129,"difficulty":131,"description":162},"\u002Fterms\u002Fs\u002Fsemantic-conflict","A semantic conflict is the scariest kind of merge because git doesn't even notice it.",1792528088144]