GIT – איך נכון לעבוד כשכל הצוות עובד מול שרת אחד

קדם Forums הייטק Programming Languages GIT – איך נכון לעבוד כשכל הצוות עובד מול שרת אחד

  • GIT – איך נכון לעבוד כשכל הצוות עובד מול שרת אחד

    פורסם ע"י חני קוסטליץ  הייטק on 19/03/2023 ב9:19 pm

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

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

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

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

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

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

    תודה מראש!

    זלדה בוים הגיבה לפני 1 שנה, 8 חודשים 5 חברות · 5 תגובות
  • 5 תגובות
  • רחל בוק

    הייטק
    חברה
    20/03/2023 ב4:02 pm

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

    זאת אומרת, כל אחת שמסיימת פיתוח ב Branch שלה, מבצעת את הפעולות בסדר הבא:

    1. Pull לגרסת מאסטר (אחרי Commit+push ל Branch כמובן) – כדי לקבל את השינויים שבוצעו.

    2. Merge ממאסטר אלי.

    3. פתירת קונפליקטים.

    4. Merge ממני למאסטר.

  • שירה סקורניק

    הייטק
    חברה
    21/03/2023 ב8:00 am

    בנוסף למה שכתבו כאן,

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

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

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

    כשכן יש קונפליקטים – כמובן שצריך לפתור אותם כמו שצריך כדי לא לשבור קוד של מישהי אחרת / את הקוד שנמצא בbranch הראשי.

    בעבודה נכונה עובדים גם עם pull requests כך שראש הצוות עוברת על כל מה שאמור להיכנס לBranch הראשי ומכניסה רק מה שהיא מאשרת להכניס, מה שתורם לכך שהbranch הראשי תמיד תקין.

    בהצלחה!

  • חני קוסטליץ

    הייטק
    חברה
    21/03/2023 ב10:56 pm

    המון תודה למי שהגיבו!

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

    – עדיף לעבוד עם ענפים נפרדים – האם לפי משימות? או לכל אחת ענף משלה?
    שימו לב שחלק מהבנות, לדוגמה אני, עובדות על המון חלקים שונים של האתר במקביל. עמוד תוכן, עמוד פוסט, פונקציה גנרית שתופיע בכמה מקומות באתר, FOOTER, עמוד FAQ, אלו רק מעט מהדברים שעליהם עבדתי [אמיתי!!] בפרויקט ממש השבוע, בתוך יומיים. יהיה מתיש לפתוח ענף נפרד לכל אחת מהמשימות, ולג’נגל ביניהן כל הזמן הלוך חזור, ולדאוג למרג’ג’ את כולן כל הזמן. אין לזה סוף…

    – יש ענף אחד ראשי שאליו כל הקוד נשפך בסופו של דבר (לדוגמה master, או בשמו החדש main, או אפילו ענף dev). על העובדות בצוות לדחוף אליו באמצעות push את הקוד שלהן בתכיפות גבוהה ככל האפשר, וכל לעשות pull/merge בתכיפות זהה. כך כל הזמן לכולן יהיה קוד כמה שיותר מעודכן מקודים של כל שאר הבנות בצוות.

    – כמובן שקונפליקטים שנוצרים יש לפתור בחוכמה, זה בכל מקרה, ולא קשור לפרויקט הספציפי הזה.

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

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

    בנוסף, כמו שכתבתי למעלה – לא מדובר כאן על משימות ארוכות ומוגדרות, אלא דברים קטנים, שאת עובדת על כמה דברים במקביל, או כמה דברים ביום אחד. עבודה עם מספר ענפים תהיה בלתי נסבלת, כי חצי מהיום שלי ילך רק על פול/פוש/מרג’/פתרון קונפליקטים/דחפו לגיט/קחו דחוף מהגיט את הקוד שלי/מי עובדת על functions.php ודרסה לי את הקוד? קחי בבקשה את הקוד שלי, דחפתי עכשיו ממש.

    מניסיון…

    מה אומרות?

    או הכי פשוט – לחסוך את הכאב ראש הזה, ולעבוד כל אחת על סביבה מקומית משלה.

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

    החסרון – התקנה ארוכה ומורכבת. לכל אחת יש DB נפרד, מה שעשוי לגרום לכמה בעיות שאני יכולה לחשוב עליהם כבר עכשיו. מדובר באתרי וורדפרס, לא איזה ריאקט/node שהולכים על לוקאלהוסט כברירת מחדל.

    אשמח לשמוע עוד את דעתכן המנוסה 🙂 תודה מראש!!

  • דינה יודלביץ

    הייטק
    חברה
    23/03/2023 ב10:23 pm

    שימי לב שאת מתארת פה בעיתיות מאוד גדולה בעבודה עם גיט שמשמש את כל העולם (כמעט..) לניהול פרוייקטים מרובי מתכנתים.

    אז אולי הבעיה היא אחרת ?

    קוראת את מה שכתבת:

    יוצא שכמה עובדות על אותו קובץ , אולי הקבצים לא מספיק מודולרים ?

    יוצא שמשהי עובדת על client והשניה על server ואז יש נפילה כי מסתמכים על פונקציה לא קיימת,

    איך קורה דבר כזה? לא יושבים קודם ומתכננים את הAPI?

    בקיצור, נשמע לי יותר שהפתרון הוא בכוון של תכנון נכון יותר של הפרוייקט עצמו,

    ולא בגיט … (“מליארד סינים לא טועים”)

    בהצלחה רבה מענין לשמוע מה דעתך

    • זלדה בוים

      הייטק
      חברה
      23/03/2023 ב11:27 pm

      מסכימה איתך מאד

      בעבודה נכונה עם git ובתכנון נכון +תאום נכון, בד”כ אין בעיות, וגם כשיש, חושבים יודעים מראש שזה הולך לקרות…

      כפרופסורית לבעיות git, ראיתי שהצורה הנכונה ביותר- היא לעבוד נכון ולתכנן נכון, כך רוב הבעיות נפתרות מראש (פשוט לא קורות 🙂)

Log in to reply.

מעוניינת בפרסום

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

ניתן לפנות גם במייל ל: [email protected]

מה את מחפשת?

מילות מפתח פופולריות לפי תחומים

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

דילוג לתוכן