Πώς να διορθώσετε το Git Error "Οι τοπικές σας αλλαγές στα ακόλουθα αρχεία θα αντικατασταθούν από τη συγχώνευση"

Το μήνυμα λάθους " Οι τοπικές αλλαγές στα παρακάτω αρχεία θα αντικατασταθούν με συγχώνευση " εμφανίζεται στον μηχανισμό ελέγχου έκδοσης Git. Αυτό το σφάλμα παρουσιάζεται αν έχετε τροποποιήσει ένα αρχείο το οποίο έχει επίσης τροποποιήσεις στο απομακρυσμένο αποθετήριο.

Σφάλμα Git: Οι τοπικές σας αλλαγές στα ακόλουθα αρχεία θα αντικατασταθούν με συγχώνευση

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

Τι είναι τα αποθετήρια; Ποια είναι η ώθηση και το τράβηγμα στο Git;

Ένα αποθετήριο είναι ένα είδος αποθηκευτικού χώρου για κώδικα που τροποποιείται διαρκώς και αποκτάται από τα μέλη της ομάδας μέσω του μηχανισμού ελέγχου έκδοσης GitHub. Το ' Τράβηγμα' σημαίνει ότι τραβάτε την τελευταία έκδοση του αποθετηρίου στο τοπικό σας αποθηκευτικό χώρο / IDE (Integrated Development Environment) όπως Pycharm κ.λπ.

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

Αν είστε νέοι για τον έλεγχο έκδοσης Github, συνιστάται να κάνετε πρώτα όλα τα βασικά. Σε αυτό το άρθρο, υποθέτουμε ότι έχετε ήδη βασικές γνώσεις και γνωρίζετε όλα τα μέσα και τα outs.

Πώς να διορθώσετε "Οι τοπικές σας αλλαγές στα ακόλουθα αρχεία θα αντικατασταθούν με συγχώνευση";

Η ανάλυση αυτού του μηνύματος σφάλματος εξαρτάται από το τι θέλετε να κάνετε. Μπορείτε να απορρίψετε τις τοπικές σας αλλαγές και να τις τραβήξετε στο αποθετήριο ή μπορείτε να αποθηκεύσετε τις τοπικές σας αλλαγές σε μια απόκρυψη και να τραβήξετε την έκδοση από τον αποθετήριο. Όλα εξαρτώνται από την προτίμησή σας.

Επομένως, συνιστούμε να συμβουλευτείτε τα μέλη της ομάδας σας και να βεβαιωθείτε ότι όλοι είστε στην ίδια σελίδα προτού προχωρήσετε. Εάν διαπράξετε λάθος ή πιέσετε λάθος έκδοση, θα μπορούσε να επηρεάσει ολόκληρη την ομάδα.

Μέθοδος 1: Αναγκάζοντας μια έλξη για να αντικαταστήσετε τις τοπικές αλλαγές

Εάν δεν ενδιαφέρεστε για τις αλλαγές που έγιναν τοπικά και θέλετε να αποκτήσετε τον κώδικα από το χώρο αποθήκευσης, μπορείτε να αναγκάσετε να τραβήξετε. Αυτό θα αντικαταστήσει όλες τις τοπικές αλλαγές που έγιναν στον υπολογιστή σας και θα εμφανιστεί ένα αντίγραφο της έκδοσης του αποθετηρίου.

Εκτελέστε τις ακόλουθες εντολές στο IDE:

 git reset - σκληρό git τραβήξτε 

Αυτό θα καταστρέψει άμεσα όλες τις τοπικές σας αλλαγές, οπότε βεβαιωθείτε ότι γνωρίζετε τι κάνετε και ότι δεν χρειάζεστε τις τοπικές σας αλλαγές.

Μέθοδος 2: Διατήρηση και των δύο αλλαγών (τοπική και από το repo)

Εάν θέλετε να διατηρήσετε και τις δύο αλλαγές (οι αλλαγές πραγματοποιούνται τοπικά και οι αλλαγές που υπάρχουν στο αποθετήριο), μπορείτε να προσθέσετε και να δεσμεύσετε τις αλλαγές σας. Όταν τραβήξετε, θα υπάρξει προφανώς σύγκρουση συγχώνευσης. Εδώ μπορείτε να χρησιμοποιήσετε τα εργαλεία του IDE (όπως το Difftool και το mergetool) για να συγκρίνετε τα δύο κομμάτια του κώδικα και να καθορίσετε ποιες αλλαγές πρέπει να διατηρήσετε και ποιες να αφαιρέσετε. Αυτός είναι ο μεσαίος δρόμος. δεν θα χαθούν αλλαγές μέχρι να τις αφαιρέσετε με μη αυτόματο τρόπο.

 git προσθέστε $ the_file_under_error git commit git pull 

Όταν λάβετε μια σύγκρουση συγχώνευσης, ανοίξτε αυτά τα εργαλεία επίλυσης συγκρούσεων και ελέγξτε τη γραμμή με τη γραμμή.

Μέθοδος 3: Διατήρηση και των δύο αλλαγών αλλά δεν δεσμεύεται

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

 git stash save --keep-index 

ή

 git stash 
 git τράβηγμα git stash pop 

Εάν υπάρχουν κάποιες συγκρούσεις μετά την απόσπαση του stash, πρέπει να τα επιλύσετε με τον συνηθισμένο τρόπο. Μπορείτε επίσης να χρησιμοποιήσετε την εντολή:

 git stash ισχύουν 

αντί για pop, αν δεν είστε έτοιμοι να χάσετε τον κωλυμένο κώδικα εξαιτίας συγκρούσεων.

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

 git stash git τράβηγμα --rebase αρχικός master git stash pop 

Μέθοδος 4: Κάντε αλλαγές σε 'συγκεκριμένα' μέρη του κώδικα σας

Εάν θέλετε να κάνετε αλλαγές σε συγκεκριμένα τμήματα του κώδικα και δεν θέλετε να αντικαταστήσετε τα πάντα, μπορείτε να δεσμεύσετε όλα όσα δεν θέλετε να αντικαταστήσετε και στη συνέχεια να ακολουθήσετε τη μέθοδο 3. Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για τις αλλαγές που θέλετε να αντικαταστήσετε από την έκδοση που υπάρχει στο αποθετήριο:

 git checkout path / στο / αρχείο / προς / επαναφορά 

ή

 git checkout HEAD ^ διαδρομή / προς / αρχείο / προς / επαναφορά 

Επίσης, πρέπει να βεβαιωθείτε ότι το αρχείο δεν είναι σταδιακά μέσω:

 git επαναφέρετε τη διαδρομή HEAD / to / file / to / revert 

Στη συνέχεια, προχωρήστε με την εντολή pull:

 git pull 

Στη συνέχεια, θα προσπαθήσετε να μεταφέρετε την έκδοση από το χώρο αποθήκευσης.

Ενδιαφέροντα Άρθρα