תיקון: Gitignore לא עובד

GitHub התגלה כחלוץ מוביל בתחום שיתוף הפעולה בקוד ושיתוף מאגרים. GitHub היא בעיקר תוכנת בקרת גרסאות המאפשרת למשתמשים לשלוט על בקרת גרסאות מבוזרות ו- SCM (ניהול קוד המקור). פלטפורמה זו משמשת עסקים וחברות מרכזיות בכל רחבי העולם.

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

מה זה .gitignore?

Git (או GitHub) רואה כל קובץ בספריית העבודה שלך. הוא מאפיין כל קובץ כאחד משלושה:

  • במעקב: קבצים אלה הוקצו או הועלו בעבר בהיסטוריה.
  • ללא מעקב: אלה הקבצים שטרם הועלו על הבמה או בוצעו.
  • מתעלמים: אלה הקבצים שהמשתמש עצמו אמר לגיט להתעלם מהם לחלוטין.

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

  • קוד מהול: קבצים אלה הם בדרך כלל עם הסיומת .class, .pyc, .ccp וכו '.
  • קבצי מערכת נסתרים: אלה קבצים המשמשים את המערכת לצורך פעולותיה אך מוסתרים מעין רגילה, למשל, DS_Store או Thumbs.db וכו '.
  • בניית ספריות פלט: לרוב מדובר בספריות של / bin, / out וכו '.
  • מטמון תלות: קבצים אלה עשויים להיות התוכן של מודולי / node או / חבילות.
  • קבצי תצורה של IDE: אלה קבצי תצורה שנוצרו או מנוהלים בעיקר על ידי תוכנת ה- IDE שלך.
  • קבצים שנוצרו בזמן ריצה: ישנן כמה תוכניות שיוצרות קבצים בזמן הריצה. אם מופעל קוד כזה, קבצים מסוימים עשויים להיווצר בזמן הריצה בתיקיית העבודה שלך ואתה יכול להתעלם מהם ב- Git.

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

מה גורם .gitignore לא לעבוד?

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

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

פתרון 1: בודק קובץ .gitignore

אירע מקרה מעניין בו ראינו שקובץ ה- .gitignore נוצר בפורמט שגוי. בעיה מסוימת זו התרחשה כאשר משתמשים יצרו את הקובץ באמצעות יישום ברירת המחדל של Notepad במערכת ההפעלה של Windows. מתברר כי פנקס הרשימות כותב את הקובץ ב- Unicode במקום בפורמט ANSI. בפתרון זה נשמור את השינויים ב- Notepad בפורמט הנכון של .gitignore ונראה אם ​​זה פותר את הבעיה.

הערה: עליך להסיר את הסיומת של .txt מהקובץ כאשר אתה יוצר קובץ חדש באמצעות פנקס הרשימות.

  1. לאחר כתיבת הקוד או שינויים במסמך טקסט חדש בפנקס הרשימות, לחץ על קובץ ובחר שמור בשם .
  1. כעת מול קידוד בחר ANSI . כעת הסר את סיומת הקובץ של .txt ושמור את הקובץ בשם ' .gitignore '. בחר את הספרייה הנכונה ושמור.
  1. עכשיו נווט לספריה ובדוק אם הקובץ הנכון נוצר. עכשיו בדוק זאת שוב עם Git ובדוק אם התכונה Ignore עובדת כצפוי.

מפתחים צריכים להימנע משימוש בפנקס הרשימות המוגדר כברירת מחדל ב- Windows. במקום זאת, עליך להשתמש בפנקס המתכנתים המתאים. כמה דוגמאות כוללות את Notepad ++ וכו '. אלה לא יהיו לך בעיות כמו אלה.

הערה: אם הקובץ שלך כבר נשמר בתבנית UNICODE, עליך לשמור את התוכן בפורמט ANSI כראוי אם ברצונך ש- Git יגלה את הקובץ כהלכה.

פתרון 2: בדוק את הקובץ שאתה מנסה להתעלם ממנו

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

עליכם לבחון את המבנה (מאגר) שלכם ולוודא שהקובץ ממנו אתם מנסים להתעלם כרגע אינו מתווסף למאגר. אם כן, יהיה עליכם להסיר את הקובץ מהמאגר ולאחר שבוצעו השינויים האחרונים, להוסיף את שמו ל- .gitignore (ניתן גם להעתיק את תוכן הקובץ ולאחר מחיקתו, לשכפל אותו בשם אחר) .

פתרון 3: הוספה מחדש של קבצים למאגר

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

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

  1. בצע את הפקודה הבאה. פעולה זו תבטל את הבמה ותסיר את הנתיבים לקבצים שלך מאינדקס ה- git באופן רקורסיבי.
git rm -r - מטמון.
  1. לאחר ביצוע פעולה זו, עליך לבצע את הפקודה הבאה. זה יוסיף את כל הקבצים שלך בחזרה ומכיוון של- gitignore יהיו הכללים, רק הקבצים הנכונים יעודכנו.
להוסיף git.
  1. כעת אנו מחייבים את כל הקבצים בחזרה לאינדקס באמצעות הקוד שלמטה:
git commit -m ".gitignore עובד עכשיו"

כעת בדוק את הקבצים שלך ובדוק אם הבעיה נפתרה ותוכל להשתמש שוב ב- .gitignore ללא בעיות.