Menu
Coddy logo textTech

Git Reflog

עודכן לאחרונה

git reflog מתעד כל מקום ש-HEAD הצביע עליו: כל קומיט, checkout, reset ו-rebase. מכיוון ש-Git שומר את הקומיטים האלה עוד זמן מה גם אחרי שהם יוצאים מהענפים שלכם, ה-reflog הוא רשת הביטחון שלכם: הוא מאפשר למצוא ולשחזר עבודה ש-reset --hard, rebase שהשתבש או ענף שנמחק נראו כאילו השמידו.

נסו את הפקודות האלה בעורך הטרמינל אונליין: shell אמיתי בדפדפן, בלי להתקין כלום.

git reflog מתעד כל מיקום שבו HEAD היה, כך שקומיט שאבד בגלל reset או rebase אפשר למצוא ולשחזר.

תחביר

פקודהמה היא עושה
git reflogהצגת המיקומים האחרונים של HEAD, עם hash
git reflog show <branch>הצגת ה-reflog של ענף
git reset --hard HEAD@{1}החזרת HEAD למיקום קודם
git branch recovered <hash>יצירה מחדש של ענף על קומיט שאבד

שחזור אחרי טעות

ביטול reset שגוי על ידי מציאת הקומיט שלפני ה-reset.

שלבפקודהתוצאה
1git reflogמציאת הקומיט שלפני ה-reset
2git 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 מלמד ביטול שינויים ושחזור צעד אחר צעד.
איור של שפות התכנות ב-Coddy

ללמוד Git עם Coddy

להתחיל