מהי Git Revert?
הפקודה git revert ב-Git משמשת לביטול מחויבות (commit) ספציפית מבלי לשנות את היסטוריית המחויבויות הקודמות,
מה שמאפשר גישה בטוחה יותר להיסטוריית הקוד.
הפקודה יוצרת מחויבות חדשה שמבטלת את השינויים שבוצעו במחויבות ספציפית שבחרת.
מתי משתמשים ב-git revert?
אם ביצעת מחויבות המכילה שינוי שאתה רוצה לבטל, אך אתה לא מעוניין למחוק את היסטוריית השינויים
או לשבור את היסטוריית הפרויקט, git revert היא האפשרות המתאימה.
השימוש בה מתאים במיוחד כאשר מדובר בפרויקט שיתופי,
שכן היא מאפשרת לשמור על עקביות בהיסטוריה של כל חברי הצוות.
איך משתמשים ב-git revert?
הנה הצעדים לביצוע git revert:
מצא את ה-commit hash של המחויבות שברצונך לבטל.
תוכל לראות את היסטוריית המחויבויות על ידי הפקודה:
git log
הפעל את הפקודה git revert עם ה-hash של המחויבות:
git revert <commit-hash>
בעקבות פקודה זו תיפתח סביבה לעריכת הודעת מחויבות (commit message) חדשה
שתתאר את פעולת הביטול.
תוכל לערוך או להשאיר את ההודעה המוצעת.
שמור וסגור את הודעת המחויבות.
השינויים יבוטלו וייווצר commit חדש בהיסטוריה שמבטל את המחויבות שבחרת.
דוגמה:
נניח שיש לך מחויבות עם ה-hash הבא: abc1234, והיית רוצה לבטל אותה:
git revert abc1234
מה ההבדל בין git revert ל-git reset?
git revert:
יוצרת מחויבות חדשה שמבטלת את השינויים מבלי לשנות את ההיסטוריה הקיימת.
טובה לפרויקטים שיתופיים.
git reset:
משנה את היסטוריית המחויבויות, ולכן היא פחות מתאימה כאשר עובדים בצוות,
מכיוון שהיא עלולה ליצור קונפליקטים עם שינויים של אחרים.
שאלות ותשובות בנושא git revert
ש: איך אני יכול למצוא את ה-commit hash של מחויבות מסוימת?
ת: אפשר לראות את כל המחויבויות הקודמות באמצעות הפקודה git log, שתציג רשימה של מחויבויות
עם ה-hash המזהה שלהן, תאריכים, מחברים, ותיאור השינויים.
ברגע שמצאת את ה-hash המתאים, תוכל להשתמש בו בפקודה git revert.
ש: האם השימוש ב-git revert עלול ליצור קונפליקטים?
ת: לעיתים, בעת ביטול מחויבות באמצעות git revert, עלול להיווצר קונפליקט אם שינויים אחרים במערכת תלויים
במחויבות שאתה מבטל.
במקרים כאלה, Git תבקש ממך לפתור את הקונפליקטים באופן ידני לפני שתוכל להמשיך עם המחויבות החדשה.
ש: האם אפשר לבטל כמה מחויבויות במכה אחת?
ת: כן, ניתן לבצע git revert על כמה מחויבויות ברצף, אך יש להפעיל את הפקודה על כל מחויבות בנפרד.
דרך נוספת היא להשתמש בטווח מחויבויות, אך זה מצריך זהירות מאחר שהפעולה תהיה יותר מסובכת
אם יש קונפליקטים בין המחויבויות.
ש: מהי המשמעות של הודעת המחויבות החדשה ב-git revert?
ת: הודעת המחויבות החדשה שנוצרת ב-git revert מתארת את פעולת הביטול.
היא מאפשרת להבין בהיסטוריה שהמחויבות הזו נוצרה כדי לבטל שינוי קודם.
Git תציע הודעה אוטומטית, אך ניתן לערוך אותה במידת הצורך.
ש: מתי כדאי להשתמש ב-git revert במקום ב-git reset?
ת: git revert מתאימה לפרויקטים שיתופיים או לכל מצב שבו חשוב לשמור על ההיסטוריה של המחויבויות
מבלי למחוק מחויבויות קודמות.
git reset מתאימה בעיקר לשימוש אישי, או במקרים בהם ניתן לתאם עם חברי הצוות על החזרה
לנקודת זמן מסוימת.

