כיצד להשתמש ב-.gitignore: הכנסה מעשית עם דוגמאות

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

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

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

מהו קובץ .gitignore?

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

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

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

חדש ב-Git וב-GitHub? קבל הקדמה ידידותית למתחילים לשליטה בגרסאות עם מדריך זה של GitHub ו-Git.

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

  • פלטות בנייה: קבצים שנוצרים במהלך תהליך הבנייה וניתנים לשחזור מהקוד המקורי, כגון:
    • dist/, build/ (פלטות בניית חזית וצד אחורי)
    • target/ (בניית שפה מהודקת כמו Java)
  • תלותי חבילות: מערכות ניהול חבילות יוצרות תיקיות עבור ספריות מותקנות שלא צריך לעקוב אחריהן:
    • node_modules/ (Node.js)
    • vendor/ (PHP, Composer)
    • .venv/, venv/ (סביבות וירטואליות של Python)
  • קבצים מערכתיים-ספציפיים: קבצים אלו נוצרים אוטומטית על ידי מערכת ההפעלה ואינם מתרוממים לפרוייקט:
    • .DS_Store (macOS)
    • Thumbs.db (Windows)
  • קבצי הגדרת ה-IDE: כל מפתח עשוי להשתמש בסביבת פיתוח שונה, לכן הגדרות האישיות שלהם לא צריכות להיות כלולות בבקרת גרסאות:
    • .vscode/ (VS Code)
    • .idea/ (IDEs של JetBrains)
    • .project, .settings/ (Eclipse)
  • קבצי לוגים וקבצים זמניים: לוגים, מטמונים וקבצים זמניים צריכים להיות מתעלמים כדי למנוע בלגן לא נחוץ:
    • *.log, npm-debug.log*, yarn-debug.log*, yarn-error.log* (לוגים מכלים שונים)
    • *.tmp, *.bak (קבצים זמניים וגיבויים)
    • .mypy_cache/, __pycache__/ (מטמוני Python)
    • .ipynb_checkpoints/ (נקודות בדיקה של Jupyter Notebook)
  • קבצים של סביבה וסודיים: פרטי גישה רגישים והגדרות התאמה לסביבה לא צריכות להיות מחויבות אף פעם:
    • .env, .env.local, .env.development, .env.production
    • secrets.json, config.json (קבצי הגדרות רגישים)
  • קבצי מסד נתונים ואחסון: אלו נוצרים מקומית ואינם צריכים להיכלל בבקרת גרסאות:
    • *.sqlite, *.sqlite3, *.db (קבצי מסד נתונים של SQLite)
    • dump.rdb (העברת מסד נתונים של Redis)
  • קבצי CI/CD וכיסוי: דו"חות כיסוי בדיקות ואומנם ארטיפקטים של CI/CD צריכים להימחק:
    • coverage/, *.lcov (דו"חות כיסוי קוד)
    • .tox/, .pytest_cache/ (קבצי בדיקה ב-Python)

צריך להתקין Git? עקוב אחר המדריך שלנו שלב אחר שלב ב-מדריך ההתקנה של Git כדי להתקין במהירות.

תחביר של .gitignore

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

תחביר בסיסי

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

  • קבצים ספציפיים
  • סוגי קבצים
  • תיקיות

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

כאן תוכלו למצוא סקירה של המבנה הבסיסי:

  • התעלמות מקובץ ספציפי: תוכלו לרשום את שם הקובץ ישירות כדי להתעלם ממנו.
secrets.txt
  • התעלמות מספרייה שלמה: על ידי הוספת / בסוף שם התיקייה, תוכל להתעלם מכל התוכן בתיקייה זו.
logs/
  • התעלמות מכל הקבצים מסוג מסוים: תווים גליוניים (*) ניתן להשתמש בהם כדי להתעלם מכל הקבצים עם סיומת מסוימת.
*.py
  • שלילה: ניתן להשתמש ב־! כדי לשלול תבנית ולפעול באופן מפורש על קבצים או תיקיות מסוימים שבדרך כלל היו נתעלמים.
*.txt # Ignores all .txt files !readme.txt # Except for readme.txt

כיצד ליצור ולהשתמש בקובץ .gitignore

יצירה ושימוש ב־.gitignore פשוטים יחסית. בסעיף זה, אני אסביר את השלבים.

יצירת קובץ .gitignore

שלב 1: נווט לשורש המאגר שלך. קובץ ה־.gitignore נמצא בדרך כלל בתיקיית השורש של פרויקט Git. פתח את טרמינל הפקודות שלך ונווט לתיקיית השורש של המאגר ה־Git שלך:

cd /path/to/your/repo

שלב 2: צור את קובץ ה־.gitignore. לאחר הגעתך לתיקיית השורש, צור את קובץ ה־.gitignore באמצעות כל עורך טקסט או באמצעות פעולה בטרמינל, כגון:

touch .gitignore

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

הנה דוגמה לקובץ .gitignore שנהוג בפרויקט בסיסי:

# התעלם מ- node_modules ומספריות תלויות node_modules/ vendor/ # התעלם מארגזי בנייה dist/ build/ *.log # התעלם מקבצים הנוצרו על ידי המערכת .DS_Store Thumbs.db # התעלם מקבצים מהסביבה וקבצים סודיים .env config.json

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

שלב 4: לשלוח את הקובץ למאגר. חשוב לשלוח את קובץ .gitignore למאגר כדי שכל המשתתפים ישתמשו באותן כללי ההתעלמות. זהו מבטיח עקביות בפרוייקט עבור כולם המעורבים.

git add .gitignore git commit -m "Add .gitignore file" git push

פעם שהקובץ .gitignore משובץ, אתה מציב כללי התעלמות משותפים עבור צוות המפתחים כולו.

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

Best Practices for Using .gitignore

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

השתמש בקובץ .gitignore גלובלי

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

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

כדי להגדיר קובץ .gitignore גלובלי:

  • צור קובץ .gitignore_global:
touch ~/.gitignore_global
  • הוסף תבניות עבור קבצים שתרצה להתעלם מהם באופן גלובלי, כגון:
.DS_Store *.log /.vscode/ /.idea/
  • הגדר את Git להשתמש ב־.gitignore הגלובלי:
git config --global core.excludesfile ~/.gitignore_global

נצל תבניות קיימות

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

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

עדכן את ה־.gitignore באופן קבוע

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

תרחישים בהם ייתכן שיהיה צורך לעדכן את קובץ .gitignore כוללים:

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

Troubleshooting .gitignore

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

מעקב אחר קבצים שכבר נקלטו

קובץ .gitignore אינו חל רטרואקטיבית לקבצים שכבר נקלטו.

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

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

  • הסרת הקבצים ממעקב Git:השתמש בפקודת git rm כדי להסיר אותם מהמאגר בעודם נשמרים בספריית העבודה שלך.
git rm --cached <file_or_directory_name>
  • ביצוע השינויים: לאחר הסרת הקבצים מהמעקב של Git, בצע את השינויים כדי לוודא שהם לא חלק מההיסטוריה של שליטת גרסאות.
git commit -m "Stop tracking ignored files"
  • העלאת השינויים למאגר המרוחק:לבסוף, העלה את השינויים למאגר המרוחק כדי לוודא שהקבצים לא נמענים יותר.
git push

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

וודא שהתבניות עובדות

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

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

  • בדוק את סטטוס הקבצים שלך: השתמש בפקודת git status כדי לראות אילו קבצים מועקבים על ידי Git. זה יעזור לך לוודא אם הקבצים שהושמדו עדיין מופיעים.
git status
  • ודא שהתבנית נכונה: בדוק שסינטקס התבניות בקובץ .gitignore מסודר כראוי. לדוגמה:
    • ודא שאתה משתמש בנתיב התיקייה הנכון (יחסי לשורש המאגר).
    • הוסף / כדי לכוון אל תיקיות ספציפיות וכך למנוע מעקיפת כל הקבצים עם שמות דומים.
  • רענן את המטמון: אם עדכנת לאחרונה את קובץ ה-.gitignore שלך והשינויים לא מיושמים, Git עשוי לשמור על המטמון הקודם שלו. כדי לרענן את המטמון, הרץ את הפקודה הבאה:
git rm -r --cached . git add . git commit -m "Refresh .gitignore"
  • בדוק עבור חריגות: לעיתים קרובות, תבנית ספציפית בקובץ .gitignore עשויה להתעלם על ידי תבנית יותר ספציפית במקום אחר בקובץ. עיין בחוקים שלך כדי לוודא שאין תבניות סותרות.

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

סיכום

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

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

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

Source:
https://www.datacamp.com/tutorial/gitignore