לגבי branch , לא סגור שהבנתי

תגיות:

אני לא בטוח שהבנתי :

בעת הרצת הפקודה python path/to/wit.py branch NAME , צרו שורה חדשה ב־ references.txt . השורה תראה כך: NAME=COMMIT_ID , כאשר במקום NAME יופיע שמו של ה־branch, ובמקום COMMIT_ID יופיע מספרו של ה־commit שבו נמצא ה־HEAD בעת הרצת הפקודה.

האם הכוונה היא שבמקום השורה עם המאסטר תיווצר שורה עם שם הbranch והid המקושר אליו ? זאת אומרת שעדיין אנחנו כותבים שם רק שתי שורות , אחת head והשניה branch ?

בעת הרצת פקודת checkout , יעודכן בקובץ בשם activated.txt שנמצא ישירות תחת התיקייה .wit , שמו של ה־branch שנמצא במצב “פעיל” בעת ביצוע הפקודה. זה יהיה כל תוכנו של הקובץ, ולכן אפשר להרגיש בנוח לדרוס אותו.

כל צ’קאאוט ? כולל כזה עם מספר ולא עם שם של branch ?
(או שבמצב כזה יתעדכן master ? אם אנחנו עליו)

בניגוד למה שנכתב ביום 2, בעת פקודת commit, התווית master כבר לא תתקדם כל פעם שהיא וה־HEAD נמצאים באותו מקום. כדי שתתקדם, היא חייבת שהתנאי המדובר יתקיים וגם שהענף יהיה “מופעל”. הענף master “מופעל” והתווית תתקדם רק אם ה־checkout האחרון שהתבצע היה python wit.py checkout master

כלומר בתחילת האיניט הענף מאסטר מופעל כברירת מחדל , ומאסטר מתקדם בזמן commit , רק שאם עשינו צ’קאאוט לבראנץ מסוים הוא לא מתקדם יותר ובמקומו יהיה כתוב שם הbranch ?

לא, בנוסף. זאת אומרת, אם יצרת 5 branch־ים, אמורים להיות 7 שורות: HEAD (המקום הנוכחי שלך), master (שזה למעשה branch שנוצר עבור המשתמש אוטומטית כשעשינו git init), ועוד שורה עבור כל branch.

אם זה יהיה מספר, לא יהיה branch פעיל בפועל.

כן

לא בדיוק.
כל זמן נתון יש branch אחד, או 0 branch־ים שנחשבים “activated”.
אם ה־branch שנחשב activated וה־HEAD מצביעים לאותו מקום, ואז ביצעת commit:

  1. ה־HEAD יתקדם ל־commit החדש (כרגיל).
  2. אותו branch ש־activated יצביע ל־commit החדש.
2 לייקים

תודה רבה , שאלה אחרונה בעניין הזה -

א, בנוסף. זאת אומרת, אם יצרת 5 branch־ים, אמורים להיות 7 שורות: HEAD (המקום הנוכחי שלך), master (שזה למעשה branch שנוצר עבור המשתמש אוטומטית כשעשינו git init), ועוד שורה עבור כל branch.

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

לייק 1

כרגע כן.

אני אדייק את זה טיפה, ברשותך. ה־master הוא branch לכל דבר, זאת אומרת ש:

  1. כשה־master פעיל שאר ה־branch־ים לא פעילים
  2. כש־branch מסוים שאינו ה־master פעיל, בהכרח ה־master הופך להיות לא פעיל.

אפשר שיהיו 0 בראנצ’ים פעילים אם נכתוב: git checkout commit_id.
במקרה כזה, לא יהיה אף ענף פעיל.

נוכל לחזור למצב בו אנחנו על ענף פעיל בכל שלב אם נכתוב git checkout branch_name.

אני אענה קונקרטית: כל ה־references לכל ה־branch־ים צריכים להישאר, כדי שיהיה אפשר לחזור אליהם אחר כך.

2 לייקים

2 פוסטים פוצלו לנושא חדש: לפי הדוגמה בשאלה, יכולים להיות כמה branch־ים פעילים?