מסתבכת עם בראנצ'ים של GITHUB

  • הוסף לסימניות
  • #1
אני מנסה לעבוד על כמה בראנצ'ים במקביל, ולפעמים צריכה לעבור ביניהם לפני שעשיתי commit לשינויים
אחרי שעברתי בראנץ' אני רואה ב-git status שהשינויים מהבראנץ הקודם מופיעים כשינויים גם בבראנץ הנוכחי.
מחיקה שלהם תמחוק משניהם
(אני עוברת בין הבראנצ'ים ע"י הפקודה git chekout)
אשמח להסבר ועזרה, תודה מראש (:
 
  • הוסף לסימניות
  • #2
למה לעבור לפני שעשית Commit?
יש אפשרות לשמור את השינויים בצד באמצעות git stash
הפקודה שומרת את השינויים שעדין לא נעשה עליהם COMMIT וכך ניתן לחזור לברנץ שרוצים ולהחזיר את השינויים.
https://git-scm.com/docs/git-stash
 
  • הוסף לסימניות
  • #3
אני לא רוצה לעשות commit באמצע משימה
לפעמים מתעורר צורך דחוף לעבור למשימה בבראנץ אחר
לפעמים משימה מסויימת תקועה בגלל אנשים אחרים

האם stash הוא פר בראנץ'?
או שקיים אחד לכולם יחד? (שוב זה לא עוזר לי, במקרה של עבודה על דברים במקביל)
 
  • תודה
Reactions: UU
  • הוסף לסימניות
  • #4
הסבר מהיר ל-STASH:
שמירה זמנית של הקבצים ב-branch הנוכחי, אחרי הפעולה הזו אפשר בקלות לעבור ל-branch אחר, לשנות לתקן ואז לחזור ל-branch שלנו ולהחזיר את כל השינויים שעשינו

git stash – שמירה זמנית של השינויים

git stash list – רשימת הקבצים שנעשה בהם שינוי

git stash apply החזרת השינויים של לברנץ

הרשימה של ה-STASH לא נמחקת כל עוד לא הרצנו git stash drop
 
נערך לאחרונה ב:
  • הוסף לסימניות
  • #5
אז אני מבינה שאין ממש אפשרות לעבוד על שני בראנצ'ים בו זמנים בלי לעשות commit או stash.
אוקיי, תודה :)
 
  • הוסף לסימניות
  • #6
אפשר לעבוד עם git stash, אבל לדעתי לא מומלץ,זה בעצם סוג של פח אשפה בהמתנה
אם מדובר במשהו ממש פיצי - אולי שווה
שימי לה להחזיר מה-stash לפני שאת עושה marge של השינויים על הברנצ' שבאמצע
עדיין, אם מדובר שיותר מדקת עבודה על ברנצ' אחר - תעשי commit לא יקרה כלום אם זה באמצע משימה, זו דעתי.
(וכל עוד לא דחפת ל-git את השינויים - הם יעברו מברנצ' אחד לשני ב-chackout אבל אם יהיה התנגשות בין 2 קבצים יקרה marge)
בהצלחה!
 
  • הוסף לסימניות
  • #7
אפשר לעשות commit ולעבור branch
וכשחוזרים אח"כ לעשות git reset --soft HEAD~1
וזה יבטל את ה -commit וישאיר את השינויים בקבצים -
יחזיר אותם למצב midified
(כמעט בטוח שזה הסינטקס - תעשי ניסוי על שינוי קטן ותבדקי)
 
  • הוסף לסימניות
  • #8
גם לי זה קורה הרבה לעבוד על הרבה ברנצים. כל הסטשים למינהם יכולים להביא את המערכת רחוק מאוד .
אני כשאני עובר ברנץ אני עושה קומיט בלי לכתוב עליו כלום רק כאשר יש מסה משמעותית אני עושה קומיט עם מסג תקין.
source-tree מאוד עוזר בדברים האלה לדעתי מומלץ בחום. נותן ויזואליות על אפה את נמצאת בגיט.
 
  • תודה
Reactions: UU
  • הוסף לסימניות
  • #9
אז אני מבינה שאין ממש אפשרות לעבוד על שני בראנצ'ים בו זמנים בלי לעשות commit או stash.
אוקיי, תודה :)
אפשר, אם לא אכפת לך שהשינויים מהבראנצ' הראשון נמצאים כשאת עובדת על הבראנץ' השני. אח"כ תעשי commit & push רק לשינויים החדשים, ותחזרי לבראנץ' המקורי.
אבל אם זו עבודה של דקה באמת אין סיבה שלא להשתמש בstash. יש בו גם אפשרות להוציא לא את הstash האחרון, אלא את הקודמים לו.
 
  • תודה
Reactions: UU
  • הוסף לסימניות
  • #11
אני לא רוצה לעשות commit באמצע משימה
לפעמים מתעורר צורך דחוף לעבור למשימה בבראנץ אחר
לפעמים משימה מסויימת תקועה בגלל אנשים אחרים

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

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

קוד:
git commit -m " the feature done" --amend
 
נערך לאחרונה ב:
  • הוסף לסימניות
  • #13
את לא חייבת לעשות כמה קומיטים למשימה, את יכולה להשתמש בדגל --amend
ואז את כל השינויים הנוספים שרצית להכניס את מוסיפה לקומיט האחרון שהיה.

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

קוד:
git commit -m " the feature done" --amend
תודה! לא הכרתי וזה באמת פיתרון
 
  • הוסף לסימניות
  • #14
את לא חייבת לעשות כמה קומיטים למשימה, את יכולה להשתמש בדגל --amend
ואז את כל השינויים הנוספים שרצית להכניס את מוסיפה לקומיט האחרון שהיה.

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

קוד:
git commit -m " the feature done" --amend
זה מאד שימושי גם אם נניח דחפנו כבר קומיט, ופתאום גילינו ששכחנו להוסיף לו קובץ מסוים.
פשוט עושים git add, commit --amend, push -f והקומיט מתוקן :)
 
  • הוסף לסימניות
  • #16
זה מאד שימושי גם אם נניח דחפנו כבר קומיט, ופתאום גילינו ששכחנו להוסיף לו קובץ מסוים.
פשוט עושים git add, commit --amend, push -f והקומיט מתוקן :)
או אם מגלים שיש typo בהודעה שניה אחרי הcommit.
עושים --amend ומתקנים.
 
  • הוסף לסימניות
  • #17
או אם מגלים שיש typo בהודעה שניה אחרי הcommit.
עושים --amend ומתקנים.
הווי אומר שגם ההודעה שתוצג זה ההודעה מה- amend האחרון?
מגניב, ממש חידשתם לי (וחשבתי שאני מכירה את גיט :) )
 

פרוגבוט

תוכן שיווקי
פרסומת
למעלה