Junior — Middle
Εξηγήστε τη λειτουργία της εντολής rebase στο σύστημα ελέγχου εκδόσεων Git και ποια είναι η διαφορά της από το merge.
sobes.tech AI
Απάντηση από AI
Η εντολή git rebase χρησιμοποιείται για τη μετακίνηση ή την 'ξαναγραφή' μιας σειράς commits σε μια νέα βάση, δηλαδή σε ένα άλλο commit. Επιτρέπει να πάρεις αλλαγές από ένα κλαδί και να τα 'παίξεις' πάνω σε ένα άλλο κλαδί, δημιουργώντας μια γραμμική ιστορία χωρίς επιπλέον commits συγχώνευσης.
Διαφορές με το git merge:
- git merge ενώνει δύο κλαδιά, δημιουργώντας ένα νέο commit συγχώνευσης που διατηρεί την ιστορία και των δύο κλαδιών με διακλαδώσεις.
- git rebase μετακινεί τα commits ενός κλαδιού στην κορυφή ενός άλλου, ξαναγράφοντας την ιστορία και κάνοντάς την γραμμική.
Παράδειγμα:
Αν έχεις ένα κλαδί feature, που έχει δημιουργηθεί από το master, και το master έχει ενημερωθεί, τότε:
git merge masterστο feature θα δημιουργήσει ένα commit συγχώνευσης που ενώνει τις αλλαγές.git rebase masterστο feature θα μεταφέρει τα commits σου πάνω στην τρέχουσα κατάσταση του master, σαν να ξεκίνησες την εργασία από την τελευταία κατάσταση του master.
Το rebase είναι χρήσιμο για τη διατήρηση καθαρής ιστορίας, αλλά απαιτεί προσοχή όταν εργάζεσαι με δημόσια κλαδιά, ώστε να μην ξαναγράψεις την κοινή ιστορία.