Rebase
Rebase
είναι η διαδικασία αλλαγής του ιστορικού δεσμεύσεων ενός κλάδου με την εφαρμογή δεσμεύσεων από έναν άλλο κλάδο. Αντί να χρησιμοποιείτε merge
για να συνδυάσετε αλλαγές, rebase
σας επιτρέπει να εισάγετε insert
νέες δεσμεύσεις στο ιστορικό δεσμεύσεων του τρέχοντος κλάδου χωρίς να δημιουργείτε δεσμεύσεις συγχώνευσης.
Για παράδειγμα, ας υποθέσουμε ότι έχετε δύο κλάδους: feature-branch
και main
. Εργάζεστε feature-branch
και θέλετε να εφαρμόσετε τις πιο πρόσφατες δεσμεύσεις από main
τον τρέχοντα κλάδο σας. Μπορείτε να χρησιμοποιήσετε το rebase για να το πετύχετε:
git checkout feature-branch
git rebase main
Όταν εκτελείτε αυτήν την εντολή, το Git θα πάρει τις δεσμεύσεις από main
και θα τις εφαρμόσει σε feature-branch
. Αυτό σημαίνει ότι όλες οι δεσμεύσεις feature-branch
θα εμφανίζονται μετά τις δεσμεύσεις από main
. Το αποτέλεσμα είναι ένα πιο καθαρό και πιο ευανάγνωστο ιστορικό δεσμεύσεων στο feature-branch
.
Ωστόσο, όταν χρησιμοποιείτε το rebase, είναι σημαντικό να σημειωθεί ότι η αλλαγή του ιστορικού δεσμεύσεων μπορεί να επηρεάσει τα δημόσια κοινόχρηστα υποκαταστήματα. Επομένως, εάν έχετε ήδη προωθήσει δεσμεύσεις από το τρέχον υποκατάστημά σας σε ένα απομακρυσμένο αποθετήριο, συνιστάται γενικά να μην χρησιμοποιείτε την επαναφορά σε αυτόν τον κλάδο για να αποφύγετε συγκρούσεις και ένα ακατάστατο ιστορικό δεσμεύσεων.
Branch
Εναλλαγή
Η εναλλαγή κλάδου στο Git αναφέρεται στη διαδικασία μετακίνησης από τον έναν κλάδο στον άλλο. Όταν αλλάζετε κλάδους, το Git μετακινεί τον δείκτη HEAD στον νέο κλάδο, επιτρέποντάς σας να εργαστείτε σε αυτόν τον κλάδο και να κάνετε αλλαγές χωρίς να επηρεάζετε άλλους κλάδους.
Για παράδειγμα, ας υποθέσουμε ότι έχετε υποκαταστήματα feature-branch
και main
. Για να μεταβείτε στο feature-branch
, θα χρησιμοποιήσετε την ακόλουθη εντολή:
git checkout feature-branch
Αφού αλλάξετε κλάδους, μπορείτε να κάνετε αλλαγές στον κατάλογο εργασίας. Όλες οι εντολές commit
, add
, και checkout
θα εφαρμοστούν στον τρέχοντα κλάδο.
Για παράδειγμα, εάν προσθέσετε ένα νέο αρχείο και το δεσμεύσετε στο feature-branch
, μόνο αυτός ο κλάδος θα περιέχει τη δέσμευση, ενώ main
παραμένει ανεπηρέαστος. Αυτό σας επιτρέπει να αναπτύξετε ξεχωριστές δυνατότητες, να διορθώσετε σφάλματα ή να εργαστείτε σε διαφορετικές εκδόσεις του κώδικα ανεξάρτητα. Μπορείτε να κάνετε εναλλαγή μεταξύ των υποκαταστημάτων όποτε χρειάζεται για να εργαστείτε σε κάθε κλάδο ξεχωριστά.