על wit status וההתכתבות של wit checkout איתו

אני קורא את השרשור הזה כבר פעם שלישית ועדיין לא בטוח אם הבנתי נכון.
אשמח שנייה לוודא ומאמין שיעזור לבאים שיקראו גם .
changes to be commited -
כל הקבצים בstaging_area אשר שונים מהקבצים בתיקייה של הcommited האחרונה. כולל קבצים חדשים בstaging_area אשר לא התווספו פעם קודמת באמצעות בcommited ובמילים אחרות - כל הקבצים בתיקייה חוץ מקבצים תואמים בין הstaging_area לתיקייה של הcommited. (יש לי הרגשה שזה לא כולל הקטע המודגש וסתם המצאתי את זה אבל משום מה זה נראה לי הגיוני חחחח אז אשמח להבהרה)
Changes not staged for commit:-
הפעם משווים בין התיקייה staging_area לתיקייה המקורית שזה אומר התיקייה שממנה הועתקו הקבצים בעזרת add. ברשימה זאת יהיו כל הקבצים שנעשה בהם שינוי מאז שהתווספו לstaging_area.
(אם במקרה ומחקו אותם מהתיקייה המקורית, זה נחשב שעשו בהם שינוי?)

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

לייק 1

דווקא ממה שהבנתי זה כן כולל הקטע המודגש:

לא כ"כ הבנתי את הניסוח שלך, אבל תחת הכותרת Changes to be committed יבואו כל הקבצים שעשו להם add, שישונו ב־commit הבא. ההבדלים בין HEAD לבין staging_area, בגדול.

נכון, משווים בין התיקייה staging_area לבין התיקייה המקורית ובודקים אילו מהקבצים שקיימים ב־staging_area עברו שינוי בתיקייה המקורית.
קבצים שנמחקו נחשבים שעשו בהם שינוי, כן.

אוקי הבנתי מה צריך להיות בכל אחד אבל עדיין לא הבנתי איך checkout מתכתב איתם.
האם הבנתי נכון? -
העובדה שאם יש בהם קבצים אז checkout לא תפעל בעצם גורמת לדברים הבאים:
א. אם נעשה שינוי בקבצים מאז הוסיפו אותם (בעזרת add) אי אםשר לעשות checkout.
ב. אם הוספתי עוד קבצים לadd ועדיין לא עשיתי להם commited (הם לא נמצאים גם בHEAD) אז אי אפשר לעשות checkout.
ג. אם עשיתי add לקובץ שעבר שינוי מאז הפעם האחרונה שעשו לוcommited אז אי אפשר לעשות checkout.

נכון, צריך לעשות commit לפני.

יאפ

זה קצת כמו ב’

סבבה כאילו הstaging area לא יכול לשמור לי קובץ שכבר לא קיים או שהיה לו שינוי. זה רק מסדרון בדרך לתמונה. אם יש בו כל שינוי מהתיקייה המוקרית אז לא נוכל לעשות checkout. ובגלל זה חשוב גם שכל הקבצים שנמצאים שם עברו במדויק לHEAD.
אוקי נראלי הבנתי אבל זה מעלה לי כמה שאלות לגבי ההמשך אבל כשנגיע לגשר נחצה אותו.
תודה רבה ים.

היי ים אני שוב חוזר לזה. אני לא מוכן לוותר עד שלא אבין לגמרי :slight_smile:
אני עושה רגע תרחיש לפי מה שאתה אומר.
wit.py init
wit.py add a
wit.py commit number1
(0000000000 נוצר ב images)
הולך ידנית מוחק את a
wit status
הקובץ a נמצא מתחת Changes not staged for commited
אי אפשר כעת לעשות checkout.

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

בגדול אתה לא אמור לממש תמיכה במחיקת קבצים (אין התייחסות לזה בתרגיל עצמו).
אם ממש מתחשק לך, תצטרך לממש פקודת wit remove לצורך המחיקה – שתמחק אותו גם מ־staging_area :slight_smile:

לייק 1