מחקתם מאגר GitHub? חלון השחזור נסגר אחרי 90 יום

|כותב: מערכת QUASA|5 דק׳ קריאה
מחקתם מאגר GitHub? חלון השחזור נסגר אחרי 90 יום

כדי לשחזר מאגר GitHub שנמחק, פתחו את Deleted repositories בהגדרות החשבון שהחזיק בו ובחרו Restore. לפי הוראות השחזור של GitHub, אפשר לשחזר חלק מהמאגרים בתוך 90 יום ממועד המחיקה, כל עוד מצב רשת ה־fork שלהם מאפשר זאת.

תחילה בררו מי היה בעל המאגר ומתי נמחק: מאגר אישי מחזירים דרך הגדרות החשבון האישי, ומאגר של ארגון דרך הגדרות הארגון בידי בעל הרשאת owner. אם המאגר השתייך לרשת fork שעדיין פעילה, גם מחיקה טרייה עלולה לחסום שחזור עצמי. אם התקופה חלפה, חפשו עותק שנשמר לפני המחיקה, כגון גיבוי או clone מקומי.

מתי כדאי לחפש ברשימת המאגרים המחוקים

הספירה מתחילה במחיקת המאגר, ולא ברגע שבו הבחנתם שהוא חסר. מאגר שנמחק זה עתה עשוי להתווסף לרשימת השחזור רק כעבור שעה, ולכן היעדרו מיד אחרי המחיקה אינו קובע שהוא אבד. המתינו ובדקו שוב באותו חשבון או ארגון לפני שאתם מסיקים שאין אפשרות לשחזרו.

זהו גם המקום להבחין בין בעלות לבין גישה. מי שהייתה לו הרשאה לעבוד במאגר ארגוני אינו בהכרח רשאי לשחזר אותו; הפעולה שמורה לבעל הארגון. אם אינכם יודעים לאיזה חשבון המאגר השתייך, ודאו תחילה את זהות הבעלים במקום לחפש אותו בכל רשימת Deleted repositories שאתם יכולים לפתוח. אם הרשומה מופיעה אך Restore אינו משלים את הפעולה, קראו את הודעת השגיאה לפני ניסיון חוזר ובדקו אם המאגר היה חלק מרשת fork.

שחזור מאגר שהיה בבעלות חשבון אישי

  1. היכנסו ל־GitHub בחשבון שהחזיק במאגר. לחצו על תמונת הפרופיל ופתחו Settings.
  2. בתפריט הצד, באזור Code, planning, and automation, בחרו Repositories ואז Deleted repositories.
  3. מצאו את המאגר, לחצו על Restore שלצדו, קראו את האזהרה ואשרו באמצעות I understand, restore this repository.

חפשו את המאגר לפי שמו ברשימה של החשבון שהיה בעליו, ולא בחשבון שרק שיתף פעולה בפרויקט. אם הוא אינו מופיע גם לאחר ההמתנה, בדקו את מועד המחיקה ואת קשריו למאגרים אחרים ברשת ה־fork. היעדרו מהרשימה לבדו אינו מגלה איזו מגבלה חלה במקרה שלכם, ולכן חשוב להפריד בין בדיקת הזמן, הבעלות ומבנה הרשת.

שחזור מאגר שהיה בבעלות ארגון

  1. פתחו את תמונת הפרופיל ב־GitHub, בחרו Organizations והיכנסו לארגון שהחזיק במאגר.
  2. פתחו את Settings של הארגון ובתפריט הצד בחרו Deleted repositories.
  3. מצאו את המאגר, לחצו Restore ואשרו את האזהרה שמוצגת לפני השחזור.

את הפעולה צריך לבצע בעל הרשאת owner בארגון. אם אתם חברי צוות אך אינכם בעלי ההרשאה הזאת, בקשו מבעל הארגון להיכנס למסך השחזור. לאחר החזרת המאגר יש להקצות מחדש את הרשאות הצוותים אליו: הן אינן משוחזרות עם המאגר, גם כאשר הקוד שוב זמין. בארגון שמספר צוותים עבדו בו על אותו מאגר, בדיקת הגישה צריכה לכלול כל צוות בנפרד ולא להסתפק בכך שבעל הארגון מצליח לפתוח אותו.

כיצד רשת fork משנה את מסלול השחזור

רשת fork כוללת מאגר מקור, את ה־forks שלו וגם forks שנוצרו מהם. אם המאגר שנמחק היה חלק מרשת שעדיין נותרו בה מאגרים אחרים, שחזורו העצמי חסום עד ששאר המאגרים ברשת יימחקו או ינותקו ממנה. לכן מאגר עשוי להיות בתוך חלון הזמן ובכל זאת לא לעמוד בתנאים של כפתור Restore.

כששאר הרשת עדיין קיימת, בעלי תוכנית GitHub בתשלום יכולים לפנות דרך GitHub Support ולבקש טיפול בשחזור. האפשרות להגיש בקשה אינה הבטחה שהמאגר יחזור; בתוכנית חינמית מסלול הפנייה הזה אינו זמין. מחיקה או ניתוק של fork כדי לפנות את הרשת הם שינוי במאגר אחר, שעשוי להיות בבעלות אדם או צוות אחר. לפני פעולה כזאת יש לברר מי מחזיק בו ומה יאבד בעקבותיה, במקום להניח שהחסימה נוגעת רק למאגר שנמחק.

מה חוזר עם המאגר ומה דורש בדיקה

הופעת המאגר מחדש אינה מסיימת את ההתאוששות של סביבת העבודה. לצד הקצאה מחדש של הרשאות הצוותים, עברו על הענפים, התגיות והיסטוריית השינויים הדרושים לפרויקט. בדקו גם ששירותים חיצוניים שתלויים במאגר יכולים לגשת אליו ולבצע את הפעולות שלשמן חוברו.

מדריך ההתאוששות של Rewind מציין ש־webhooks ואינטגרציות מסוימים עשויים שלא להתחבר מחדש לאחר השחזור. לכן יש לבדוק את החיבורים המשמשים לפריסה ולהרצת CI/CD, ולחדש הרשאה או הגדרה אם פעולה צפויה אינה מתבצעת. זו בדיקה נפרדת מבדיקת הקוד: מאגר שנפתח בדפדפן עדיין יכול להיות מנותק מתהליך שעבד מולו לפני המחיקה.

כשחלון השחזור חלף: מה אפשר להחזיר מעותק עצמאי

לאחר תום חלון השחזור המובנה, חפשו גיבוי שנוצר לפני המחיקה, mirror של המאגר או clone מקומי אצל מי שעבד עליו. עותק Git יכול לשמש להעלאת קוד והיסטוריית commits למאגר חדש, אך הוא משקף את המצב שבו עודכן לאחרונה. עותק שלא סונכרן לפני המחיקה לא יכיל שינויים שנוספו בינתיים. העלאת הקוד אינה מחזירה מעצמה issues, pull requests, הרשאות או הגדרות שנוהלו ב־GitHub.

מדריך הגיבוי של GitHub מפרט כיצד mirror clone שומר מאגר Git ואת היסטוריית הגרסאות שלו, ומסביר שקובצי Git LFS מחייבים משיכה נפרדת של האובייקטים ושה־wiki נשמר כמאגר נפרד. אם המידע הזה חיוני לכם, ודאו שהוא נכלל בגיבוי לפני שצריך להשתמש בו. אותו מדריך מבחין גם בין גיבוי שאפשר להחזיר באמצעות דחיפה למאגר לבין ארכיון הגירה: לארכיון כזה אין מסלול שחזור מתועד ונתמך ב־GitHub, ולכן אין להסתמך עליו לבדו כתוכנית התאוששות.

גיבוי שימושי צריך לכלול את הנתונים שאתם מצפים להחזיר, להישמר במקום שנשאר נגיש גם אם החשבון או המאגר אינם זמינים, ולהתעדכן בתדירות שמתאימה לקצב העבודה. לפרויקט שבו הדיונים, בקשות המיזוג וההרשאות חיוניים כמו הקוד, mirror לבדו אינו מכסה את הצורך הזה. הגדירו מראש כיצד נשמר גם המידע שמחוץ ל־Git, כדי שמחיקה שתתגלה מאוחר לא תהפוך אובדן של מאגר לאובדן של עבודת הצוות סביבו.

קראו גם:

שיתוף:

הירשמו לניוזלטר שלנו

קבלו את החדשות האחרונות על Web3, ‏AI וקריפטו ישירות לתיבת הדואר.

0