Πώς να επιδιορθώσετε το σφάλμα Git: Πρέπει πρώτα να επιλύσετε το τρέχον ευρετήριό σας

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

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

Ποια είναι όλα αυτά τα αρχεία, συγχωνεύσεις και διενέξεις; Αυτοί οι όροι θα είναι άγνωστοι σε εσάς εάν είστε αρχάριος στη χρήση του Git. Το Git είναι μια πλατφόρμα ελέγχου έκδοσης που επιτρέπει σε πολλά άτομα να εργάζονται ταυτόχρονα σε αρχεία και να ωθούν το τοπικό αντίγραφο του κώδικα σε αυτό που είναι αποθηκευμένο στο cloud. Με αυτόν τον τρόπο, εάν αλλάξετε κάποιον ληφθέντα (ή ήδη προωθημένο) κωδικό και τον ωθήσετε ξανά στο σύννεφο, οι αλλαγές θα αντικατασταθούν στο σύννεφο από το τοπικό σας αντίγραφο.

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

Τι προκαλεί το σφάλμα Git: Πρέπει πρώτα να επιλύσετε το τρέχον ευρετήριό σας;

Όπως αναφέρθηκε προηγουμένως, οι αιτίες για αυτό το σφάλμα είναι αρκετά περιορισμένες. Θα αντιμετωπίσετε αυτό το σφάλμα επειδή:

  • Η συγχώνευση απέτυχε και πρέπει να αντιμετωπίσετε τη διένεξη συγχώνευσης πριν προχωρήσετε σε άλλες εργασίες.
  • Υπάρχουν διενέξεις στα αρχεία στον τρέχοντα (ή στοχευμένο κλάδο) και εξαιτίας αυτών των διενέξεων, δεν θα μπορείτε να δείτε έναν κλάδο ή έναν κωδικό push.

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

Λύση 1: Επίλυση της σύγκρουσης συγχώνευσης

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

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

Ένα παράδειγμα είναι:

$ git add file.txt $ git comm

Μπορείτε να προσθέσετε τα προσωπικά σας σχόλια ενώ κάνετε. Ένα παράδειγμα είναι:

$ git commit - m "Αυτό είναι αποθετήριο Appuals Git"
  1. Αφού επιλύσετε τη διένεξη, δοκιμάστε να ελέγξετε τον υπάρχοντα κλάδο σας και να δείτε εάν το πρόβλημα έχει επιλυθεί.

Λύση 2: Επαναφορά της συγχώνευσης

Υπάρχουν πολλές περιπτώσεις όπου συγχωνεύετε υποκαταστήματα και βλάπτετε. Λόγω όλων των συγκρούσεων και της σύγχυσης, το έργο είναι τώρα χάος και τα μέλη της ομάδας σας σας κατηγορούν για αυτό. Σε αυτήν την περίπτωση, πρέπει να επαναφέρετε την προηγούμενη δέσμευση (η συγχώνευση) . Αυτό θα αναιρέσει τη συγχώνευση εντελώς και θα επαναφέρει ολόκληρο το έργο σε κατάσταση όταν δεν κάνατε συγχωνεύσεις. Αυτό μπορεί να είναι σωτηρία αν έχετε βλάψει τα πράγματα πέρα ​​από την επισκευή.

Για να επαναφέρετε τη συγχώνευση , πληκτρολογήστε τα εξής:

$ git reset -–merge

Η παραπάνω εντολή θα επαναφέρει το ευρετήριο και θα ενημερώσει τα αρχεία στο δέντρο εργασίας που διαφέρουν μεταξύ του "commit" και του "head". Ωστόσο, θα διατηρήσει εκείνα τα αρχεία που διαφέρουν μεταξύ του ευρετηρίου και του δέντρου εργασίας.

Μπορείτε επίσης να δοκιμάσετε να επαναφέρετε το HEAD χρησιμοποιώντας την ακόλουθη εντολή:

$ git επαναφορά HEAD

Εάν θέλετε να καθορίσετε την ακριβή δέσμευση συγχώνευσης που θέλετε να επαναφέρετε, μπορείτε να χρησιμοποιήσετε την ίδια εντολή επαναφοράς αλλά να καθορίσετε επιπλέον παραμέτρους. Θα χρησιμοποιηθεί το κατακερματισμό SHA1 της συγχώνευσης. Το -m που ακολουθείται από το 1 δείχνει ότι θέλουμε να διατηρήσουμε τη γονική πλευρά της συγχώνευσης (στον κλάδο στον οποίο συγχωνεύουμε). Το αποτέλεσμα αυτής της επαναφοράς είναι ότι το Git θα δημιουργήσει μια νέα δέσμευση που θα επαναφέρει τις αλλαγές από τη συγχώνευση.

$ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4>