0

בודק Gitignore

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

🔒 מעובד כולו בדפדפן שלך - שום דבר שתזין כאן לא יועלה לעולם.

מעבד... 0%
מפענח כללי gitignore.
מתאים נתיבי קבצים
הושלם

תוצאה

"למה ההיפוך ב־gitignore. שלי לא עובד?" היא אחת השאלות הנפוצות ביותר בנושא git, והתשובה הכנה היא כמעט תמיד זהה: תבנית `!` שמנסה להחזיר קובץ בתוך תיקייה שכלל קודם כבר מחריג לעולם לא יכולה לעבוד, משום ש־git לא יורד לתוך תיקיות מוחרגות כדי לבדוק שוב דברים בתוכן. הכלי הזה מממש את אלגוריתם ההתאמה האמיתי של gitignore. – לא קירוב – במיוחד כדי לתפוס ולהסביר בדיוק את המצב הזה, יחד עם כל שאר כללי התבניות ש־git תומך בהם.

הדביקו את כללי gitignore. בתיבה אחת ורשימת נתיבי קבצים (אחד בכל שורה, כמו `dist/index.js`, `node_modules/foo/bar.js` או `env.`) בתיבה השנייה, והכלי יעריך כל נתיב בדיוק כפי ש־git היה עושה: שורות הערה ושורות ריקות מדולגות, רווחים סופיים נחתכים אלא אם סומנו ב־escape, `!` בתחילת שורה הופך כלל, `/` בתחילת שורה מעגן אותו לשורש במקום לאפשר התאמה בכל עומק, `/` בסוף שורה מגביל לתיקיות, ו־`*`, `?`, מחלקות תווים `[abc]` ו־`**` (תואם חוצה גבולות תיקיות) – כולם עובדים לפי כללי הגלוב המתועדים.

באופן קריטי, נתיבים נבדקים תיקייה אחר תיקייה מהשורש כלפי מטה, בדיוק כפי שמנוע ההחרגה של git עובד – לא על ידי בדיקת הנתיב המלא מול כל כלל בנפרד. זה מה שמאפשר לזהות נכון את מקרה ההיפוך המת: אם `dist/` מוחרג בשורה 3 וכלל מאוחר יותר `!dist/keep.js` מנסה להציל קובץ אחד בתוכה, הכלי מדווח על `dist/keep.js` כעודנו מוחרג, מציין את הכלל משורה 3 כסיבה, ובנפרד מסמן את ההיפוך כמוסתר במקום להעמיד פנים בשקט שהוא עבד.

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