שטח עבודה לעומת אזור הכנה לעומת מאגר מקומי: הבנת שלושת האזורים המקומיים של Git
By Mirko Peters ·
שליטה בשלושת האזורים המקומיים של Git: הבינו כיצד שטח העבודה, אזור ההכנה והמאגר המקומי פועלים יחד כדי לאפשר לכם שליטה מדויקת בהיסטוריית הפרויקט.
Automatically translated with AI from the original post. Read the English original

ניווט בשלושת האזורים המקומיים של Git – שטח העבודה, אזור ההכנה והמאגר המקומי – הוא תנאי הכרחי למעבר מהעתקת קבצים בבלגן לניהול גרסאות מכוון. מדריך זה מסביר כיצד פועל כל אזור, בדומה למשרד פיזי, ומעניק לכם שליטה מדויקת בהיסטוריית הפרויקט.
עיקרי הדברים
- שטח העבודה הוא תיקיית הפרויקט הפעילה שלכם, ופועל בדומה לשולחן עבודה עמוס שבו עורכים קבצים באופן חופשי.
- אזור ההכנה משמש כמגש בדיקה, ומכיל רק את השינויים שבחרתם באמצעות
git addלנקודת השמירה הבאה. - המאגר המקומי משמש כארון התיוק, ורושם לצמיתות את השינויים שהוכנו כהיסטוריית קומיטים מסודרת.
- הפקודות git status ו-git diff מספקות בדיקות בטיחות שמאפשרות לבדוק מה קורה בשלושת האזורים המקומיים לפני רישום ההיסטוריה.
- הבנת שלושת האזורים מונעת קומיטים בשוגג ועוזרת לשמור על היסטוריית פרויקט נקייה והגיונית.
שטח העבודה: שולחן העבודה הפעיל שלכם
כשפותחים תיקיית פרויקט במחשב ומתחילים לערוך בה, פועלים ישירות בתוך האזור המקומי הראשון של Git: שטח העבודה. חשבו על התיקייה כעל שולחן העבודה הפיזי שלכם. היא מכילה כל קובץ שאתם פותחים, יוצרים, משנים או מוחקים, כולל קוד אתר, תיעוד, קבצי הגדרות ותמונות.
כמו שולחן אמיתי, גם שטח העבודה יכול להתבלגן בזמן ניסויים. אולי תתחילו לכתוב מחדש לחצן כניסה, תבחינו בשגיאת כתיב בקובץ README, ותריצו סקריפט ניסיוני לבדיקת פריסה חדשה. Git אינו מכריח באופן אוטומטי כל שינוי שנעשה בתיקייה הזו להיכנס להיסטוריה הקבועה. יש לכם חופש לנסות רעיונות, לטעות ולהשאיר עבודה לא גמורה, בלי לשנות לצמיתות את תיעוד הפרויקט.
כדי לראות מה השתנה בשטח העבודה מאז נקודת השמירה האחרונה שנרשמה, נסתמכים על הפקודה git status. במילים פשוטות, בקשת סטטוס מ-Git דומה לספירת מלאי של כל מה שמונח על השולחן. היא מזהה קבצים ששונו, קבצים חדשים וקבצים שנמחקו, ומציגה בדיוק מה השתנה מאז הקומיט האחרון.
אזור ההכנה: מגש הבדיקה
אזור ההכנה הוא אולי המושג המובן ביותר בצורה שגויה למפתחים החדשים בניהול גרסאות, במידה רבה משום ששמו נשמע כמו חדר אחסון טכני ומסתורי. במקום זאת, דמיינו את אזור ההכנה כמגש בדיקה שיושב ליד שולחן העבודה. מניחים בו רק את השינויים שמיועדים לנקודת השמירה הבאה.
נניח שביליתם את הבוקר בתיקון קישור קריטי לאיפוס סיסמה, ובמקביל התחלתם לעצב מחדש, באופן ניסיוני, את מסך הברכה. בוודאי תרצו לרשום את תיקון הסיסמה, אבל העיצוב החדש לא גמור ומכיל באגים. אתם לא רוצים שני השינויים יארזו יחד באותו קומיט.
כשמריצים git add על קובץ איפוס הסיסמה, הקובץ המוגמר והספציפי הזה מועבר לאזור ההכנה. למרות השם, git add לא שומר את העבודה לצמיתות ולא שולח שום דבר לשרת מקוון. הפעולה רק מכינה גרסה נקייה ונבחרת של הקובץ לנקודת השמירה הבאה. ההפסקה הקטנה הזו נותנת שליטה רבה: אפשר לבדוק את השינויים שהוכנו, להסיר פריטים שנוספו בטרם עת, או להוסיף קבצים נוספים ששייכים לאותה יחידת עבודה לוגית בדיוק.
מאגר המקומי: ארון התיקים
כשמגש הבדיקה מכיל את הקבוצה המדויקת של השינויים שברצונכם לשמר, העריכות עוברות לאזור השלישי של Git: המאגר המקומי. אם תיקיית העבודה היא שולחן העבודה שלכם ואזור ההכנה הוא מגש הבדיקה, המאגר המקומי הוא ארון התיקים המאובטח שלכם.
המאגר המקומי שומר את כל ה-commits וההיסטוריה של הפרויקט ישירות על המחשב שלכם, בתיקיות מערכת נסתרות. כשמריצים git commit -m "Fix password reset link", Git לוקח את השינויים שהוכנו מאזור ההכנה ונועל אותם בנקודת שמירה קבועה ובעלת שם.
ארכיטקטורה מקומית-קודם משמעה שאפשר לבנות היסטוריית פרויקט מלאה וניתנת למעקב גם בלי חיבור לאינטרנט או לשירות אירוח מקוון. הכול קורה בבטחה על החומרה שלכם. זרימת העבודה היומיומית הופכת לקצב אמין: עורכים קבצים בתיקיית העבודה, בודקים את המצב עם git status, בוחרים שינויים ממוקדים עם git add, ומתעדים את הבחירות שלכם עם git commit.
סיכום
שליטה בהבחנה בין תיקיית העבודה, אזור ההכנה והמאגר המקומי משנה את האופן שבו ניגשים לפרויקטים לפיתוח. כשמתייחסים לתיקייה כאל מרחב עבודה, לאזור ההכנה כאל מגש בדיקה ולמאגר המקומי כאל ארון תיקים קבוע, מקבלים שליטה מלאה על היסטוריית הפרויקט.
כדי להעמיק בעקרונות הבסיסיים של בקרת גרסאות, האזינו לפרק המלא של M365 FM Podcast, שבו Mirko Peters מסביר את Git בשפה פשוטה ומציג כיצד המנגנונים המקומיים האלה משתלבים בזרימות העבודה הרחבות של צוותים.
שאלות נפוצות
מה ההבדל בין תיקיית העבודה לאזור ההכנה?
תיקיית העבודה היא תיקיית הפרויקט הפעילה שבה עורכים, יוצרים ומוחקים קבצים באופן חופשי. אזור ההכנה הוא מגש בדיקה סלקטיבי שבו מניחים רק את השינויים הספציפיים שבכוונתכם לכלול ב-commit הבא.
האם git add שומר את הקבצים שלי לצמיתות?
לא. הפקודה git add מכינה את הקבצים על ידי העברתם לאזור ההכנה, אך היא אינה מתעדת אותם לצמיתות בהיסטוריית הפרויקט ואינה שולחת אותם לאינטרנט. תיעוד קבוע מתבצע רק כשמריצים git commit.
האם אפשר להשתמש ב-Git בלי שירות אירוח מקוון?
כן. Git נבנה לעבוד לחלוטין באופן מקומי על המחשב שלכם. אפשר ליצור מאגר מקומי, לבצע commits, לנהל branches ולבדוק היסטוריה בלי להתחבר לעולם ל-GitHub או לאינטרנט.
מה לעשות אם הוספתי קובץ לאזור ההכנה בטעות?
אם הוספתם קובץ לאזור ההכנה מוקדם מדי, Git מספק פקודות ביטול הכנה (כמו git reset) שמסירות בבטחה את הקובץ מאזור ההכנה ומחזירות אותו לתיקיית העבודה, בלי לאבד את העריכות האחרונות שלכם.