ניקוי Git: הסרת קבצים לא מעוקבים ושמירה על המערכת בסדר

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

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

הבנת git clean

הפקודה git clean היא כלי שימושי ב-Git שמסירה קבצים שאינם במעקב ממדריך העבודה. הפקודה git clean שימושית כאשר אתה צריך לאפס את מדריך העבודה שלך למצב נקי, כמו לפני שמחליפים ענפים או לאחר הרצת תהליכי בנייה המייצרים קבצים זמניים. עם זאת, יש להשתמש בפקודה git clean בזהירות מכיוון שהיא מוחקת לצמיתות קבצים ודירקטוריות שאינם במעקב מבלי להעביר אותם לפח או למיכל מחזור.

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

  • קבצים זמניים שנוצרו על ידי תהליכי בנייה

  • קבצי יומן או נתוני מטמון

  • קבצים המפורטים ב.gitignore (אם צוין במפורש עם -x)

הפקודה git clean שימושית לשמירה על סדר בתיקיית העבודה, משלימה פקודות אחרות ב-Git כמו git reset ו־git checkout, שמנהלות שינויים בקבצים מעוקבים.

אני מוצא את גליון העבודות המלא של Git מדריך התייחסות שימושי לפקודות Git נפוצות.

שימושים נפוצים ל־git clean

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

הסרת קבצים לא מעוקבים

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

  • git clean -f: מכפיל את ההסרת קבצים לא מעוקבים.

  • git clean -fd: מסיר קבצים לא מעוקבים ותיקיות לא מעוקבות.

  • git clean -fx: מסיר קבצים לא מעוקבים וקבצים מושהים כמו אלה שמופיעים ב־.gitignore.

אך עליך להיות זהיר בשימוש באפשרות -fx מכיוון שהיא מסירה גם קבצים שנתעלמו. תמיד יש לוודא באמצעות הרצת dry run (git clean -n) לפני ביצוע הפקודה.

מצב אינטראקטיבי

הפקודה git clean -i מאפשרת מצב אינטראקטיבי, מאפשרת למשתמשים להסיר באופן בררני קבצים שלא נמצאים במעקב. מצב זה שימושי כאשר ברצונך לקבל יותר שליטה על הקבצים או התיקיות שנמחקים.

נניח שאתה עובד על פרויקט שבו כבר שמרת את השינויים בתיקיית Olympics. אך, הוספת קבצי מקור חדשים בשמות 2024_Data, ו- 2025_Data. אם תריץ את הפקודה git clean -i, תקבל את הערכת המשמעות הבאה המאפשרת לך לבחור מהאפשרויות הבאות למחיקת השינויים שאינם במעקב.

  • clean: הסרת קבצים נבחרים

  • filter: ציון תבנית לקבצים לניקוי

  • select: בחירת קבצים בודדים לפי מספר

  • quit: יציאה בלי למחוק דברים

git clean -i במצב אינטראקטיבי. תמונה מאת המחבר.

הפעלה יבשה לצורך בטיחות

שימוש ב־git clean -n הוא מידת בטיחות שימושית מאחר שהוא מבצע "הפעלה יבשה," ומציג רשימת קבצים ותיקיות לא מעוקבים שימחקו מבלי למחוקם בפועל. זה מאפשר לך לסקור את השינויים לפני ביצועם.

בדוגמה שלהלן, פקודת git clean -n מציגה את הקבצים שצריך למחוק אך אינה מוחקת אותם.

git clean -n להפעלה יבשה. תמונה מאת המחבר.

שילוב עם איפוס git

כדי לאפס מדריך עבודה של Git באופן מלא, ניתן לשלב git reset ו־git clean שבהם:

  • git reset --hard: מאפס קבצים מעוקבים למצב האחרון שהוצא לשחזור, וזורק את כל השינויים המקומיים.

  • git clean -fd: מסיר קבצים ותיקיות לא מעוקבים, משאיר רק קבצים שהוצא לשחזור.

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

תבדוק את המדריך או Git Pull Force: איך לדרס ענף מקומי עם ענף מרחוק כדי ללמוד את השיטות הטובות ביותר לדרוס שינויים מקומיים.

מדריך שלב אחר שלב לשימוש ב־git clean

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

שלב 1: בדוק את המצב הנוכחי

לפני הניקוי, הפעל את git status כדי לבדוק את המצב הנוכחי של המאגר שלך ולראות אילו קבצים הם שאינם מעוקרים.

git status

git status כדי לבדוק את המצב הנוכחי של המאגר. תמונה מאת המחבר.

שלב 2: צפה במה שימחק

לפני ביצוע כל פקודת מחיקה, השתמש ב־git clean -n כדי לצפות במה שימחק.

git clean -n

git clean -n כדי לצפות מה יימחק. תמונה מאת המחבר.

שלב 3: הסרת קבצים שאינם מעוקרים

הרץ את git clean -f כדי להסיר קבצים שאינם מעוקרים אם התצוגה מראה נכון.

git clean -f

הסר שינויים שאינם מעוקרים בעזרת git clean -f. תמונה מאת המחבר.

שלב 4: הסרת תיקיות שאינן מעוקרות

השתמש ב־git clean -fd כדי להסיר תיקיות שאינן מעוקרות.

git clean -fd

הסרת ספריות שאינן מעוקרות באמצעות git clean -fd. תמונה מאת המחבר.

שלב 5: הסרת קבצים שהוגדרו כנתמכים

כדי להסיר גם קבצים שאינם מעוקרים וגם קבצים שהוגדרו כנתמכים, יש להשתמש בפקודת git clean -fx.

git clean -fx

שלב 6: שימוש במצב אינטראקטיבי לניקוי בחירתי

לשליטה נוספת, שקול להשתמש ב־git clean -i להסרה אינטראקטיבית. מצב זה מאפשר לך לבחור אילו קבצים למחוק באופן יחידני.

Git clean -i

git clean -i מצב אינטראקטיבי לניקוי בחירתי. תמונה מאת המחבר.

git clean נגד פקודות Git אחרות

הפקודה git clean נשווה לעתים תקיפות עם פקודות Git אחרות שמשנות או מאפסות קבצים. הטבלה למטה מדגישה את ההבדלים העיקריים:

Command Function
git clean מסיר קבצים וספריות שאינם מעוקרים לצמיתות.
git reset מאפס קבצים שנמצאים במעקב למצב קודם, בהשפעה על שינויים שנמצאים בשלב הביצוע ושנאמתו.
git checkout (או git restore) מזיז את השינויים בקבצים שנמצאים במעקב אבל לא מסיר אותם.
git stash שומר שינויים, המעוקרים והמעוקרים, באופן זמני לשימוש מאוחר יותר.

שיטות מומלצות לניקוי ב-Git

כדי להשתמש ב־git clean בצורה בטוחה ויעילה, עקוב אחר מומחיות אלו:

  • השתמש בבדיקות רציפות (Dry Runs) (-n) לפני מחיקה: תמיד השתמש ב־אפשרות git clean -n כדי לבצע בדיקת ריצה רציפה לפני ביצוע git clean. זה מאפשר לך לצפות אילו קבצים יוסרו מבלי למחוק אותם בפועל.

  • להיות זהירים עם קבצים שנתעלמו: כאשר אתה משתמש ב-git clean, עליך להיות זהיר עם האפשרות -x, שמסירה קבצים שנתעלמו. זה עשוי למחוק קבצי תצורה חשובים שמצוים ברשימה ב-.gitignore. אם יש לך צורך להסיר קבצים שנתעלמו, השתמש בפקודת git clean -fx.

  • שלבו עם איפוס Git לניקוי מלא: כדי לאפס באופן מלא את המאגר שלכם, שלבו git reset עם git clean, כאשר git reset --hard משיב קבצים מעוקבים למצבם האחרון שנקבע ו־git clean -fd מסיר קבצים ותיקיות שאינם מעוקבים.

  • השתמש במצב אינטראקטיבי (-i) למחיקות בטוחות: במקום להסיר קבצים באופן סמוי, השתמש במצב אינטראקטיבי (git clean -i) כדי לבדוק ולבחור אילו קבצים למחוק.

סיכונים פוטנציאליים ואמצעי זהירות

שימוש ב־git clean עשוי להיות סיכוני אם לא נעשה בזהירות, מכיוון שהוא מוחק קבצים לצמיתות מבלי לשמור אותם בשום מקום. הנה כמה מהסיכונים העיקריים והאמצעים לזהירות שכדאי לשקול:

  • הקבצים נמחקים לצמיתות: בניגוד לgit stash, ששומר זמנית שינויים, git clean מוחק לצמיתות קבצים וקטלוגים שלא מנוטרים. ברגע שהוסרו, קבצים אלה לא ניתן לשחזר באמצעות Git. אם ייתכן שתצטרך את הקבצים מאוחר יותר, שקול לאחסן או לגבות אותם לפני הרצת הפקודה git clean.

  • היה זהיר עם האפשרות -x: השימוש בgit clean-fx מסיר קבצים מוזנחים, שעשויים לכלול קבצי קונפיגורציה חשובים המפורטים ב.gitignore או מטמונים של תלות כמו node_modules/ וvenv/. הסרת קבצים אלה בטעות עלולה לשבור בניות או סביבות פיתוח, לכן השתמש באפשרות זו רק כשזה הכרחי.

  • הפעל ריצה יבשה תחילה: בכל עת עליך לבצע ריצת ניסיון באמצעות git clean -n לפני ביצוע git clean -f. שלב זה מאפשר לך לתצוג מראש אילו קבצים יימחקו, עוזר לך למנוע הסרת קבצים חשובים בטעות

  • גישות אלטרנטיביות: במקרים מסוימים, שימוש ב־git stash עשוי להיות אפשרות טובה יותר מ־git clean. הפקודה git stash -u מצביעה על קבצים שאינם מעוקרים, ומחריזה עליהם לשם שחזור פוטנציאלי בעתיד, וה־git stash pop משחזר שינויים שנחרזו כאשר נדרש זאת. השיטה עשויה להיות שימושית כאשר נדרש לעבור בין ענפים או לנקות את המרחב העבודה שלך מבלי לאבד לצמיתות שינויים.

Conclusion

בסיס קוד שנתחזק היטב מראה תשומת לב לפרטים, יעילות ויכולת לנהל נכסים דיגיטליים באופן אחראי. מעסיקים מחפשים מפתחים שמבינים בשיטות מובילות כגון שימוש ב-git clean -n לפני מחיקת קבצים, הזהירות בקבצים שנתעלמו באמצעות -x, ושימוש באלטרנטיבות בטוחות יותר כמו git stash.

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

Source:
https://www.datacamp.com/tutorial/git-clean