קלוד שבר לי משהו — מסלול החילוץ
נשום. כמעט כל מצב הפיך. בחר את הענף שמתאר אותך ולך צעד-צעד.
לפני הכול — מה checkpoints לא מכסים
נקודות השחזור של Claude Code עוקבות רק אחרי עריכות שקלוד עשה בכלי העריכה שלו. אם קלוד הריץ פקודת טרמינל — מחק קבצים, הזיז תיקייה, הריץ סקריפט — /rewind לא יחזיר את זה. למקרים האלה יש את ענפי ה-git למטה, והם עובדים רק על מה ש-git מכיר. קובץ שמעולם לא קומט ונמחק בפקודת טרמינל — אין לו רשת ביטחון. זה בדיוק למה הענף האחרון בעמוד הזה הוא ההרגל שמונע את הפעם הבאה.
ענף 1: עוד לא עשיתי commit
הדרך הקצרה. Claude Code שומר נקודות שחזור לאורך הסשן.
/rewindנפתח תפריט. בחר נקודה מלפני השבירה. אפשר לשחזר קוד, שיחה, או שניהם.
קיצור: לחיצה כפולה על Escape (כששורת הקלט ריקה) פותחת את אותו תפריט.
זהו. אם הקוד חזר לעבוד — סיימת. אם לא — הגבול שלמעלה: מה שנשבר בפקודת טרמינל לא חוזר כאן. ענפי ה-git למטה.
ענף 2: כבר עשיתי commit
יש שתי דרכים. ההבדל חשוב.
revert — הבטוח. יוצר commit חדש שמבטל את הקודם. ההיסטוריה נשמרת. זו ברירת המחדל שלך, ותמיד נכונה אם כבר דחפת (push):
git log --oneline
git revert <hash-of-bad-commit>reset — המוחק. מעלים את ה-commit כאילו לא היה. רק אם ה-commit אצלך בלבד, לא נדחף לאף אחד:
git reset --hard HEAD~1לא בטוח איזה? revert. תמיד אפשר לנקות היסטוריה אחר כך; אי אפשר להחזיר עבודה של אחרים שנדרסה.
ענף 3: לא בטוח מה בכלל קרה
אל תפעל עדיין. קודם תסתכל.
git statusמראה אילו קבצים השתנו.
git diffמראה מה בדיוק השתנה בהם. קרא. עכשיו אתה יודע באיזה ענף אתה: השינויים לא קומטו → ענף 1. קומטו → ענף 2. חלק מהשינויים דווקא טובים → ענף 4.
ענף 4: רוצה לשמור חלק מזה
השינויים מעורבבים — יש שם גם דברים טובים. שים הכול בצד:
git stashהקוד חזר למצב הנקי האחרון. השינויים לא נמחקו — הם שמורים בצד. כשתרצה אותם בחזרה:
git stash popעכשיו אפשר להחזיר אותם בבת אחת, או לבחור מהם ידנית את החלקים הטובים.
אחרי החילוץ
שני הרגלים מונעים את הפעם הבאה: קרוא את ה-diff לפני שממשיכים, ו-commit קטן אחרי כל יחידת עבודה שלמה — כך שלענף 1 תמיד יהיה לאן לחזור. עוד על זה: מתי לסמוך ומתי לבדוק.