Git Reflog
עודכן לאחרונה
git reflog מתעד כל מקום ש-HEAD הצביע עליו: כל קומיט, checkout, reset ו-rebase. מכיוון ש-Git שומר את הקומיטים האלה עוד זמן מה גם אחרי שהם יוצאים מהענפים שלכם, ה-reflog הוא רשת הביטחון שלכם: הוא מאפשר למצוא ולשחזר עבודה ש-reset --hard, rebase שהשתבש או ענף שנמחק נראו כאילו השמידו.
נסו את הפקודות האלה בעורך הטרמינל אונליין: shell אמיתי בדפדפן, בלי להתקין כלום.
תחביר
| פקודה | מה היא עושה |
|---|---|
git reflog | הצגת המיקומים האחרונים של HEAD, עם hash |
git reflog show <branch> | הצגת ה-reflog של ענף |
git reset --hard HEAD@{1} | החזרת HEAD למיקום קודם |
git branch recovered <hash> | יצירה מחדש של ענף על קומיט שאבד |
שחזור אחרי טעות
ביטול reset שגוי על ידי מציאת הקומיט שלפני ה-reset.
| שלב | פקודה | תוצאה |
|---|---|---|
| 1 | git reflog | מציאת הקומיט שלפני ה-reset |
| 2 | git reset --hard HEAD@{1} | החזרת הענף אליו |
שאלות נפוצות על git reflog
מה זה git reflog?
זה יומן של כל המקומות ש-
HEAD (וקצה כל ענף) הצביעו עליהם במאגר המקומי: אחרי קומיטים, checkouts, resets, מיזוגים ו-rebases. בניגוד ל-git log, שעוקב אחרי שושלת הקומיטים, ה-reflog הוא תיעוד כרונולוגי של הפעולות שלכם, וזה מה שהופך אותו לשימושי לשחזור.איך משחזרים קומיט אחרי git reset --hard?
הריצו
git reflog כדי למצוא את הרשומה של הקומיט שהייתם עליו לפני ה-reset (משהו כמו HEAD@{1}), ואז git reset --hard <that-hash> (או HEAD@{1}) כדי לחזור אליו. הקומיט לא באמת נמחק: פשוט אף ענף לא הצביע עליו, וה-reflog עדיין זוכר את ה-hash שלו.איך משחזרים ענף שנמחק?
מצאו את הקומיט האחרון של הענף ב-
git reflog, ואז צרו מחדש את הענף שם: git branch <name> <hash>. כל עוד המחיקה הייתה לאחרונה (בתוך תקופת התפוגה של ה-reflog, בדרך כלל כמה שבועות), הקומיטים עדיין נגישים בדרך הזו.האם git reflog עובד בין עותקים משוכפלים?
לא. ה-reflog מקומי למאגר שלכם, והוא לא נדחף ולא משוכפל. הוא מתעד רק פעולות במחשב שלכם. לכן הוא יכול להציל טעויות מקומיות, אבל לא לשחזר משהו שהיה קיים רק בעותק משוכפל אחר.
אפשר לתרגל את זה אונליין?
כן. פתחו את עורך הטרמינל אונליין כדי להריץ
git reflog ב-shell אמיתי בדפדפן, בלי להתקין כלום. גם קורס ה-Git האינטראקטיבי והחינמי של Coddy מלמד ביטול שינויים ושחזור צעד אחר צעד.