Git Rebase
עודכן לאחרונה
git rebase מעביר את הקומיטים של הענף שלכם כך שירוצו מחדש מעל ענף אחר, ויוצר היסטוריה ישרה וליניארית במקום קומיט מיזוג. rebase אינטראקטיבי (-i) הולך רחוק יותר ומאפשר לאחד, לסדר מחדש, לערוך או להשמיט קומיטים. מכיוון ש-rebase משכתב קומיטים, עשו אותו רק לעבודה שעוד לא שיתפתם.
נסו את הפקודות האלה בעורך הטרמינל אונליין: shell אמיתי בדפדפן, בלי להתקין כלום.
תחביר
| פקודה | מה היא עושה |
|---|---|
git rebase main | הרצה מחדש של הקומיטים שלכם מעל main |
git rebase -i HEAD~3 | עריכה אינטראקטיבית של 3 הקומיטים האחרונים |
git rebase --onto main old new | העברת טווח קומיטים אל main |
git rebase --continue | המשך אחרי פתרון קונפליקטים |
git rebase --abort | ביטול ה-rebase ושחזור הענף |
git pull --rebase | pull עם rebase במקום מיזוג |
מילות מפתח ב-rebase אינטראקטיבי
בעורך ש--i פותח, שנו את pick לאחת מאלה.
| מילת מפתח | מה היא עושה |
|---|---|
pick | השארת הקומיט |
reword | השארת הקומיט ועריכת ההודעה שלו |
squash | איחוד לקומיט הקודם ושילוב ההודעות |
fixup | איחוד לקומיט הקודם וזריקת ההודעה הזו |
drop | הסרת הקומיט לגמרי |
שאלות נפוצות על git rebase
מה git rebase עושה?
מה זה rebase אינטראקטיבי?
git rebase -i <base> פותח עורך עם רשימת הקומיטים מאז <base>, ושם אפשר לסדר אותם מחדש, לאחד כמה לאחד עם squash, לנסח הודעות מחדש עם reword, לערוך קומיט עם edit או להשמיט אותו עם drop. זה הכלי העיקרי לסידור סדרת קומיטים מבולגנת לפני שמשתפים אותה.מהו כלל הזהב של rebase?
איך מתקנים או מבטלים rebase עם קונפליקטים?
git add, ואז git rebase --continue. השתמשו ב-git rebase --skip כדי להשמיט את הקומיט הנוכחי, או ב-git rebase --abort כדי לבטל לגמרי ולהחזיר את הענף למצב שלפני תחילת ה-rebase.אפשר לתרגל את זה אונליין?
git rebase ב-shell אמיתי בדפדפן, בלי להתקין כלום. גם קורס ה-Git האינטראקטיבי והחינמי של Coddy מלמד rebase צעד אחר צעד.