Contents
git rebase, git merge
שאלה: מה עושה הפקודה git rebase
ובמה היא שונה מ-git merge
?
git rebase
מוחק את ההיסטוריה של הסניף ומחליף אותה בהיסטוריה חדשה, בעודgit merge
משלב שינויים רק בקבצים קיימים.git rebase
מיזוג לאחור (reverse merge), בעודgit merge
מיזוג רגיל.git rebase
משכתב את ההיסטוריה של הסניף על בסיס סניף אחר ומונע מיזוגים מרובים, בעודgit merge
יוצר commit מיזוג חדש.git rebase
מיועד רק לשימוש עם GitHub ו-git merge
עובד רק עם Bitbucket.
תשובה:
👇
✅ תשובה נכונה: C
📘 הסבר:
git merge
:
משלב את ההיסטוריה של שני סניפים ויוצר commit חדש של מיזוג. ההיסטוריה נשמרת בצורה "ענפית".git rebase
:
מעביר (משכתב) את הקומיטים של הסניף שלך כך שהם יבואו "מעל" סניף אחר. זה מונע commits מיזוגיים ומייצר היסטוריה לינארית, כאילו עבדת תמיד על בסיס מעודכן.
📊 השוואה מהירה:
תכונה | Merge | Rebase |
---|---|---|
צורת ההיסטוריה | מסתעפת | לינארית |
commit מיזוג | כן (merge commit ) | לא, אלא אם יש קונפליקטים |
שכתוב היסטוריה | לא | כן |
מתאים לשימוש פומבי | כן | זהירות – עדיף רק על סניפים מקומיים |
💡 טיפ חשוב:
אם כבר שיתפת את הסניף שלך עם אחרים – הימנע מ-rebase עליו, כי זה עלול לשבור היסטוריית עבודה משותפת.
אם אתה עובד על סניף לבד – rebase
היא דרך מעולה לשמור על היסטוריה ברורה.
🛠️ פרקטיקה מומלצת:
כאשר אתה עובד על פיצ'ר ורוצה לעדכן אותו עם שינויים מה-main:
git checkout my-feature
git fetch origin
git rebase origin/main
אם יש קונפליקטים, תפתור אותם ואז:
git rebase --continue
אם התחרטת ורוצה לחזור למצב לפני ה-rebase:
git rebase --abort