Η συγχώνευση στο Git δεν παίζει πάντα όπως ελπίζατε. Μπορεί να προκαλέσει μια σειρά από ζητήματα που οδηγούν σε προβλήματα κώδικα. Ευτυχώς, μπορείτε απλώς να αντιστρέψετε τις συγχωνεύσεις για να τις αναιρέσετε και τις ανεπιθύμητες αλλαγές που εισήγαγαν.

Διαβάστε παρακάτω για να ανακαλύψετε όλα όσα πρέπει να γνωρίζετε σχετικά με τον τρόπο επαναφοράς μιας συγχώνευσης στο Git.
Πώς να επαναφέρετε μια συγχώνευση τοπικά χρησιμοποιώντας το Git Revert
Το Git είναι ένα εύχρηστο εργαλείο για την ανάπτυξη λογισμικού, που επιτρέπει στους προγραμματιστές να συνεργάζονται σε έναν μόνο πηγαίο κώδικα ταυτόχρονα σε διαφορετικούς κλάδους. Η συγχώνευση αυτών των μεμονωμένων κλάδων δεν λειτουργεί πάντα όπως έχει προγραμματιστεί και τότε είναι χρήσιμη η εντολή επαναφοράς.
Ακολουθούν τα βήματα για να επαναφέρετε μια συγχώνευση τοπικά χρησιμοποιώντας το git revert:
- Μεταβείτε στον κλάδο στον οποίο η δέσμευση συγχώνευσης πρέπει να αντιστραφεί.
- Πληκτρολογήστε και εκτελέστε την εντολή git log με τουλάχιστον την παράμετρο –oneline για ορατότητα για να δείτε το ιστορικό δεσμεύσεών σας.

- Εισαγάγετε το git revert ακολουθούμενο από -m 1 .

- Χρησιμοποιήστε την εντολή push git για να αναιρέσετε τη δέσμευση συγχώνευσης τοπικά.

Η επαναφορά μιας συγχώνευσης τοπικά χρησιμοποιώντας το git revert θα δημιουργήσει μια νέα δέσμευση και θα αναιρέσει τη συγχώνευση και τις επόμενες αλλαγές, αλλά δεν καταργεί το ιστορικό συγχώνευσης. Εάν έχετε ήδη προωθήσει τη συγχώνευση στο απομακρυσμένο αποθετήριο, τότε θα πρέπει να χρησιμοποιήσετε πιο δραστικά μέτρα.
Για να επαναφέρετε μια συγχώνευση που έχει προωθηθεί, ακολουθήστε τα βήματα 1 έως 3 και, στη συνέχεια, αντικαταστήστε το βήμα 4 με το εξής:
4. Εισαγάγετε το git push –force για να αναιρέσετε τη δέσμευση συγχώνευσης στον απομακρυσμένο χώρο αποθήκευσης.

Σε αντίθεση με την αντιστροφή μιας συγχώνευσης τοπικά, η αναίρεση μιας συγχώνευσης που έχει προωθηθεί στον απομακρυσμένο χώρο αποθήκευσης έχει τη δυνατότητα να διαγράψει οριστικά τις δεσμεύσεις και τις αλλαγές τους. Επομένως, είναι σημαντικό να δημιουργήσετε έναν κλάδο αντιγράφων ασφαλείας πριν το κάνετε.
Πώς να ματαιώσετε μια συγχώνευση στο Git
Σε αντίθεση με την επιλογή git revert, η επιλογή ματαίωσης συγχώνευσης git χρησιμοποιείται για την εγκατάλειψη μιας συγχώνευσης που βρίσκεται σε εξέλιξη αυτήν τη στιγμή για να αντιστραφεί η συγχώνευση και οι αλλαγές της. Η ματαίωση μιας συγχώνευσης θα επαναφέρει τον κατάλογο στον οποίο εργάζεστε στην κατάσταση πριν από τη συγχώνευση, επιτρέποντας τη διόρθωση των διενέξεων πριν από τη συγχώνευση ξανά.
Λάβετε υπόψη ότι αυτό λειτουργεί μόνο εάν το Git αναφέρει προβλήματα ως αποτέλεσμα συγχώνευσης. Εάν η συγχώνευση είναι επιτυχής, δεν θα μπορείτε να χρησιμοποιήσετε την εντολή.
Αυτός είναι ο τρόπος με τον οποίο ματαιώνετε μια συγχώνευση στο Git:
- Μεταβείτε στο αποθετήριο στο οποίο βρίσκεται σε εξέλιξη η συγχώνευση.
- Χρησιμοποιήστε την κατάσταση git για να ελέγξετε το αποθετήριο και να εντοπίσετε τη διαδικασία συγχώνευσης που βρίσκεται σε εξέλιξη.

- Πληκτρολογήστε και εκτελέστε την εντολή git merge –abort .

- Πατήστε Enter για να ακυρώσετε τη συγχώνευση.

Πώς να αντιστρέψετε μια συγχώνευση χρησιμοποιώντας το Git Hard Reset
Η επιλογή σκληρής επαναφοράς Git είναι ο πιο ισχυρός τρόπος για να αναιρέσετε μια συγχώνευση στο Git. Αυτή η εντολή επιτρέπει στους προγραμματιστές να αντιστρέψουν τις αλλαγές στον κατάλογο στον οποίο εργάζονται μεταφέροντας τον δείκτη διακλάδωσης σε διαφορετική δέσμευση. Το μειονέκτημα αυτής της επιλογής είναι ότι θα απορρίψει όλες τις αλλαγές στον κατάλογο εργασίας και την περιοχή σταδιοποίησης.
Ακολουθήστε τα παρακάτω βήματα για να αναιρέσετε μια συγχώνευση χρησιμοποιώντας το git hard reset:
- Μεταβείτε στον κλάδο στον οποίο η δέσμευση συγχώνευσης πρέπει να αντιστραφεί.
- Χρησιμοποιήστε το αρχείο καταγραφής git με τουλάχιστον την παράμετρο –oneline για ορατότητα για να δείτε το ιστορικό δεσμεύσεών σας.

- Πληκτρολογήστε το git reset – hard και ένα διάστημα.

- Εισαγάγετε τον κατακερματισμό δέσμευσης που θέλετε να επαναφέρετε.
- Πατήστε Enter για να αντιστρέψετε τη συγχώνευση και τις αλλαγές της.

Η επιλογή git hard reset είναι ένα εξαιρετικά ισχυρό όπλο στο οπλοστάσιό σας για να επαναφέρετε τον τρέχοντα κλάδο σε ένα συγκεκριμένο commit. Ωστόσο, λόγω των εκτεταμένων συνεπειών του, θα πρέπει να χρησιμοποιείται με προσοχή για να αποφευχθεί η απώλεια δεδομένων. Αν και είναι χρήσιμο όταν θέλετε να διαγράψετε εντελώς μια δέσμευση και τις σχετικές αλλαγές στον κατάλογο.
Πώς να αντιστρέψετε μια συγχώνευση χρησιμοποιώντας το Git Soft Reset
Η λειτουργία μαλακής επαναφοράς στο Git επαναφέρει τον δείκτη διακλάδωσης με τον ίδιο τρόπο όπως και η λειτουργία σκληρής επαναφοράς. Ωστόσο, δεν καταργεί τις αλλαγές στον κατάλογο. Επομένως, είναι βολικό όταν θέλετε να αναιρέσετε τη συγχώνευση αλλά να κρατάτε τις αλλαγές στον κατάλογο εργασίας για μεταγενέστερη τροποποίηση.
Έτσι το κάνεις:
- Μεταβείτε στον κλάδο στον οποίο η δέσμευση συγχώνευσης πρέπει να αντιστραφεί.
- Εισαγάγετε το αρχείο καταγραφής git με τουλάχιστον την παράμετρο –oneline για ορατότητα για προβολή του ιστορικού δεσμεύσεών σας.

- Εισαγάγετε την εντολή git reset –soft . Ανταλλαγή με το commit hash που θέλετε να επαναφέρετε.

- Πατήστε Enter για να αναιρέσετε τη συγχώνευση χρησιμοποιώντας μια μαλακή επαναφορά.

Γιατί θα χρειαστεί να επαναφέρετε μια συγχώνευση στο Git
Η δυνατότητα επαναφοράς συγχώνευσης είναι ένα από τα βασικά διορθωτικά εργαλεία στο Git. Σας βοηθά να αντιστρέψετε τυχόν λάθη ή ακούσια προβλήματα που δημιουργήθηκαν κατά τη συγχώνευση. Μπορεί να διορθώσει πολλά προβλήματα που προκύπτουν από την προσπάθεια ευθυγράμμισης πολλών κομματιών κώδικα που δημιουργούνται από διαφορετικούς προγραμματιστές.
Προβλήματα ένταξης
Όταν τα υποκαταστήματα συγχωνεύονται, μπορεί συχνά να οδηγήσει σε απρόβλεπτες διενέξεις ενοποίησης που αποτελούν κίνδυνο για τον πηγαίο κώδικα. Επομένως, η επαναφορά της συγχώνευσης είναι ένας ασφαλής τρόπος για την κατάργηση των αλλαγών που ευθύνονται για τα ζητήματα ενσωμάτωσης. Αυτό θα διατηρήσει ανέπαφη την ακεραιότητα του πηγαίου κώδικα και θα σας δώσει χρόνο να διορθώσετε το λάθος πριν συγχωνευτεί ξανά.
Σφάλματα
Εκτός από ζητήματα ολοκλήρωσης, η συγχώνευση μπορεί επίσης να δημιουργήσει σφάλματα. Όταν συγχωνεύεστε στο Git, ουσιαστικά συνδυάζετε αλλαγές που έγιναν συχνά εντελώς ανεξάρτητα. Εάν δεν έχει ολοκληρωθεί η ολοκληρωμένη δοκιμή για αλλαγές σε όλους τους συγχωνευμένους κλάδους, ορισμένα σφάλματα ενδέχεται να έχουν εισχωρήσει στον κώδικα. Επομένως, η επαναφορά των συγχωνεύσεων θα σας επιτρέψει να επιστρέψετε σε μια σταθερή κατάσταση που θα σας δώσει χρόνο να εντοπίσετε και να διορθώσετε την προέλευση των σφαλμάτων.
Λάθη
Αυτή είναι μια από τις πιο συνηθισμένες αιτίες για τη χρήση της δυνατότητας επαναφοράς συγχώνευσης, επειδή κανείς δεν έχει ανοσία από λάθη. Στο Git, ακόμη και μικρά σφάλματα, όπως η κατά λάθος συγχώνευση με τη λανθασμένη κεφαλή, μπορεί να οδηγήσουν σε προβλήματα. Ευτυχώς, τα λάθη μπορούν να αντιστραφούν γρήγορα χρησιμοποιώντας τη δυνατότητα επαναφοράς συγχώνευσης Git.
Πρότυπα
Η κωδικοποίηση πρέπει να είναι ακριβής για να λειτουργεί όπως προβλέπεται. Επομένως, εάν οι συγχωνευμένοι κλάδοι φέρουν κωδικό κάτω από το αναμενόμενο πρότυπο, τότε η επαναφορά της συγχώνευσης θα καταργήσει τον δευτερεύοντα κωδικό. Αυτό θα σας επιτρέψει να διατηρήσετε την ποιότητα του κώδικα στο αναμενόμενο επίπεδο και να διασφαλίσετε ότι δεν παραβιάζει κανένα πρωτόκολλο κωδικοποίησης.
Συνεργασία
Το Git είναι το απόλυτο εργαλείο συνεργασίας όταν πρόκειται για μια ομάδα προγραμματιστών που εργάζονται σε ένα έργο. Ανοίγει την πόρτα σε έναν κόσμο συνεργασίας που επιτρέπει σε οποιονδήποτε αριθμό ανθρώπων να συνεργάζονται με συνέπεια στην ανάπτυξη λογισμικού. Η συγχώνευση είναι ένα ουσιαστικό χαρακτηριστικό γιατί εάν τα μέλη της ομάδας δεν μπορούν να συνδέσουν τα υποκαταστήματά τους, απλά δεν θα μπορούν να ενσωματώσουν τη δουλειά που έχουν κάνει. Ωστόσο, δεδομένου ότι η εργασία διεξήχθη ανεξάρτητα, η συγχώνευση δεν πηγαίνει πάντα όπως ελπίζαμε και η επαναφορά της συγχώνευσης παρέχει την ιδανική λύση.
Η επαναφορά συγχώνευσης βοηθά στη δημιουργία τέλειου κώδικα
Η κωδικοποίηση είναι ακριβής και πολύπλοκη, και ακόμη και το παραμικρό λάθος μπορεί να οδηγήσει σε ένα τεράστιο πρόβλημα όταν συγχωνεύονται κλάδοι, με αποτέλεσμα τον δυσλειτουργικό κώδικα. Η δυνατότητα συγχώνευσης επαναφοράς Git είναι ο τέλειος μηχανισμός για την αποσύνδεση διακλαδώσεων που περιέχουν σφάλματα, σφάλματα και παρόμοια.
Η επαναφορά μιας συγχώνευσης στο Git πήγε όπως είχε προγραμματιστεί και έχετε άλλες εισβολές σχετικά με τον τρόπο επαναφοράς μιας συγχώνευσης χωρίς να επηρεαστεί ο πηγαίος κώδικας; Ενημερώστε μας στην παρακάτω ενότητα σχολίων.