דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. שאלה לגבי ענפים ב-GITHUB

שאלה לגבי ענפים ב-GITHUB

מתוזמן נעוץ נעול הועבר תכנות
16 פוסטים 6 כותבים 593 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • P מנותק
    P מנותק
    ps
    כתב ב נערך לאחרונה על ידי
    #1

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

    תגובה 1 תגובה אחרונה
    1
    • yossizY מנותק
      yossizY מנותק
      yossiz
      כתב ב נערך לאחרונה על ידי
      #2

      https://stackoverflow.com/questions/1628563

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      תגובה 1 תגובה אחרונה
      3
      • P מנותק
        P מנותק
        ps
        כתב ב נערך לאחרונה על ידי
        #3

        תודה, אבדוק..

        תגובה 1 תגובה אחרונה
        0
        • zvizviZ מנותק
          zvizviZ מנותק
          zvizvi
          כתב ב נערך לאחרונה על ידי zvizvi
          #4

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

          https://git-scm.com/book/en/v1/Git-Branching-Branching-Workflows
          https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow

          https://zvizvi.xyz

          תגובה 1 תגובה אחרונה
          4
          • P מנותק
            P מנותק
            ps
            כתב ב נערך לאחרונה על ידי
            #5

            @zvizvi אמר בשאלה לגבי ענפים ב-GITHUB:

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

            נכון:(
            התעצלתי ועכשיו אוכלת את זה:(

            zvizviZ תגובה 1 תגובה אחרונה
            0
            • zvizviZ מנותק
              zvizviZ מנותק
              zvizvi
              השיב לps ב נערך לאחרונה על ידי zvizvi
              #6

              @zvizvi אמר בשאלה לגבי ענפים ב-GITHUB:

              לתוך master

              (יותר נכון לDevelop ומשם לMaster)

              https://zvizvi.xyz

              תגובה 1 תגובה אחרונה
              0
              • P מנותק
                P מנותק
                ps
                כתב ב נערך לאחרונה על ידי
                #7

                עדיין לא מסתדרת איתו
                יש לי בראנץ חדש שהתחלתי על נקי, עשיתי בו כמה שינויים, עשיתי לו stage
                עברתי לבראנץ master, והשינויים מופיעים לי גם שם..
                אם לא עשיתי commit השינויים מופיעים בכל הבראנצ'ים?

                תגובה 1 תגובה אחרונה
                0
                • P מנותק
                  P מנותק
                  ps
                  כתב ב נערך לאחרונה על ידי
                  #8

                  אוקיי, מהמשך חיפוש הבנתי שאין דרך לעבוד על בראנצ'ים בו זמנים מבלי לעשות commit או stash
                  (שזה בעצם היה השאלה שלי)

                  yossizY תגובה 1 תגובה אחרונה
                  1
                  • yossizY מנותק
                    yossizY מנותק
                    yossiz
                    השיב לps ב נערך לאחרונה על ידי
                    #9

                    @ps כבר התחלתי לכתוב שיעור שלם על הנושא...
                    GIT זו מערכת לא קלה או פשוטה. זה אחת מהטענות העקריות נגדה.
                    (לשם כתיבת השיעור הייתי צריך ללמוד בעצמי איך דברים עובדים, לא שלפתי מידיעות קודמות.)
                    אבל בגדול אתם צודקים, אין צורך ללמוד את כל הפינות האפלות ולהבין בדיוק מה קורה כאשר אתה עובד לבראנצ' אחר בלי לעשות commit. פשוט עובדים נכון, ועושים commit לפני שעוברים לענף אחר.

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

                    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                    WWWW תגובה 1 תגובה אחרונה
                    6
                    • WWWW מנותק
                      WWWW מנותק
                      WWW
                      השיב לyossiz ב נערך לאחרונה על ידי
                      #10

                      @yossiz אמר בשאלה לגבי ענפים ב-GITHUB:

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

                      מחכים...

                      WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                      תגובה 1 תגובה אחרונה
                      4
                      • yossizY מנותק
                        yossizY מנותק
                        yossiz
                        כתב ב נערך לאחרונה על ידי yossiz
                        #11

                        הקדמה

                        במערכת גיט יש שלוש אזורים שבהם מופיעים כל הקבצים של הפרוייקט.

                        1. ב-repository (כאן נמצאים לא רק הקבצים אשר ישנם פה עמנו היום אלא כל ההיסטוריה שלך מתחילת הפרוייקט)
                        2. ה-staging area (ידוע גם כ-index). מיד אחרי checkout זה משקף את ה-commit שעשית עליו checkout. אחרי stage נוספים פה השינויים שעליהם עשית stage. בעת commit כל מה שנמצא פה ייכנס ל-commit החדש.
                        3. working directory - סביבת העבודה. כאן נמצאים הקבצים שעליהם אתה עובד.

                        פקודת git checkout הרעיון שלו הוא לשנות את אזור 3 (- סביבת העבודה) לשקף את המצב של אחד מהאזורים 1 או 2 (ה-staging area או ה-working directory)

                        • במקרה של git checkout <file>‎ בלי לציין בראנצ' או commit, התוצאה היא ש-<file> באיזור 3 ישקף את <file> באיזור 2, זו פעולה הרסנית זה ידרוס את כל השינויים שבאזור 3.
                        • במקרה של git checkout <branch> <file>‎ התוצאה היא ש-<file> באיזור 2 ו-3 ישקף את מצב ה-<file> באיזור 1 (בתוך <branch>). זו פעולה הרסנית, זה ידרוס את השינויים שבאיזור 2 ו-3.
                        • במקרה של git checkout <branch>‎ בלי לציין שם של קובץ, זו פעולה לא הרסנית, הפעולה תצליח רק אם הוא לא הורס כלום.
                          א) זה משנה את הבראנצ' הנוחכי ל-<branch>
                          ב) זה דורס את הקבצים באיזור 2 ו-3, אבל רק אם זה לא יהרוס את השינויים המקומיים, ולכן התוכנה עוברת על כל הקבצים, אם יהיה אובדן של שינויים אז כל הפעולה נכשלת. לכל קובץ התוכנה בודקת כדלהלן:
                          • אם בתוך איזור 1, יש שוויון בין הקבצים של הבראנצ' הקודם לבראנצ' הנוחכי או שהקובץ לא קיים בבראנצ' החדש, לא קורה כלום, כלומר מכיון שלא נדרש שום דריסה, תמצא את איזור 2 ו-3 כמו מקודם עם כל השינויים המקומיים (אלה שעשית להם stage ואלה שלא עשית להם stage), ופעולת commit ישמור את השינויים לבראנצ' החדש.
                          • אם קובץ לא קיים בבראנצ' הקודם, אז הפקודה מוסיפה את הקובץ לאיזור 2 ו-3
                          • אם הקובץ קיים בשני הבראנצ'ים (הקודם והנוכחי) אבל בתוך איזור 1 אין שוויון ביניהם, אז נבדקים שינויים מקומיים.
                            • אם אין שינויים מקומיים - הקובץ נעתק לתוך איזור 2 ו-3.
                            • אם יש שינויים מקומיים, אז נבדקים שוויון איזור 2 של הקודם לאיזור 1 של הנוכחי, במקרה שהם שווים, לא קורה כלום, אם הם לא שווים הפעולה נכשלת. (אני לא מסביר למה זה כך כי אין לי כח, אבל אחרי מחשבה אני מבין את ההגיון בזה).

                        נ.ב. לא מצאתי את זה מתועד בצורה זו, אבל כך הבנתי מתוך נסוי... אם היה לי כח הייתי מסתכל בקוד המקור, התיעוד הסמכותית ביותר...

                        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                        תגובה 1 תגובה אחרונה
                        9
                        • yossizY מנותק
                          yossizY מנותק
                          yossiz
                          כתב ב נערך לאחרונה על ידי yossiz
                          #12

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

                          https://git-scm.com/docs/git-read-tree#_two_tree_merge

                          אוףףף, למה עשו את זה כל כך מסובך 😡 הראש שלי מתפוצץ 💥

                          ועיין עוד: https://stackoverflow.com/a/44166981/8997905

                          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                          תגובה 1 תגובה אחרונה
                          4
                          • zvizviZ מנותק
                            zvizviZ מנותק
                            zvizvi
                            כתב ב נערך לאחרונה על ידי zvizvi
                            #13

                            כדאי לעבוד עם תוכנת קליינט גרפית לגיט (Sourcetree, Fork). כי אז רואים את כל העץ והענפים מול העיניים.
                            בעת שינוי ומעבר לבארנץ אחר, רואים מיד מה קרה ולאיפה הלכו השינויים - אלה שנשמרו ואלה שלא נשמרו.
                            מניסיון שלי הייתי אומר שכ 80% מהשאלות בGit נעלמות כשרואים את העץ בצורה מוחשית.


                            טיפ לעת מצוקה:
                            git reflog יציג את כל השלבים האחרונים שבוצעו (Commit, Checkout וכן הלאה), ללא קשר למיקומם בעץ. ניתן לתפוס את המזהה של השלב הרצוי ולעבור אליו (checkout).

                            https://zvizvi.xyz

                            תגובה 1 תגובה אחרונה
                            6
                            • WWWW מנותק
                              WWWW מנותק
                              WWW
                              כתב ב נערך לאחרונה על ידי WWW
                              #14

                              יש סיכוי שמישהו כותב מדריך מסודר לעבודה עם גיט (למתחילים...) באשכול נפרד?
                              תבוא עליו הברכה!
                              @zvizvi @yossiz @david ולא יודע מי עוד.

                              WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                              תגובה 1 תגובה אחרונה
                              4
                              • chagoldC מנותק
                                chagoldC מנותק
                                chagold
                                כתב ב נערך לאחרונה על ידי
                                #15

                                @codebrain...
                                https://www.codebrain.co.il/מדריך-ל-git-ניהול-גרסאות-קוד/

                                תגובה 1 תגובה אחרונה
                                3
                                • dovidD מנותק
                                  dovidD מנותק
                                  dovid ניהול
                                  כתב ב נערך לאחרונה על ידי
                                  #16

                                  חשוב לי לשתף שאני כמעט לא יודע גיט כלל.

                                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                  תגובה 1 תגובה אחרונה
                                  2

                                  בא תתחבר לדף היומי!
                                  • התחברות

                                  • אין לך חשבון עדיין? הרשמה

                                  • התחברו או הירשמו כדי לחפש.
                                  • פוסט ראשון
                                    פוסט אחרון
                                  0
                                  • דף הבית
                                  • קטגוריות
                                  • פוסטים אחרונים
                                  • משתמשים
                                  • חיפוש
                                  • חוקי הפורום