Sobes.tech
Junior

Πώς επιλύετε συγκρούσεις στο Git;

sobes.tech AI

Απάντηση από AI

Όταν πραγματοποιείται pull ή rebase, γίνεται συγχώνευση αλλαγών. Αν το Git δεν μπορεί να επιλύσει αυτόματα τις γραμμές σε σύγκρουση στα αρχεία, τις σημαδεύει με ειδικούς δείκτες:

<<<<<<< HEAD
γραμμή από το τρέχον κλάδο
=======
γραμμή από τον κλάδο που συγχωνεύουμε
>>>>>>> feature/νέα-λειτουργία

Για να επιλύσετε τη σύγκρουση:

  1. Ανοίξτε το αρχείο σε σύγκρουση σε έναν επεξεργαστή.

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

  3. Διαγράψτε τους δείκτες <<<<<<<, =======, >>>>>>>.

  4. Αποθηκεύστε το αρχείο.

  5. Προσθέστε το επιλυμένο αρχείο στο index με git add:

    # Προσθέστε ένα συγκεκριμένο αρχείο
    git add διαδρομή/προς/επιλυμένο/αρχείο.txt
    
    # Προσθέστε όλα τα επιλυμένα αρχεία
    git add .
    
  6. Κάντε commit για να ολοκληρώσετε τη συγχώνευση:

    # Κατά τη συγχώνευση
    git commit -m "Επίλυση σύγκρουσης συγχώνευσης"
    
    # Κατά το rebase
    git rebase --continue
    

Αν υπάρχουν πολλά conflicts ή είναι σύνθετα, μπορείτε να χρησιμοποιήσετε εργαλεία συγχώνευσης:

git mergetool

Αυτό θα ανοίξει ένα γραφικό εργαλείο που βοηθάει να περάσετε βήμα-βήμα μέσα από τις συγκρούσεις.

Σε περίπτωση δυσκολιών κατά το rebase, μπορείτε να χρησιμοποιήσετε:

  • git rebase --abort: Ακύρωση του rebase και επιστροφή στην προηγούμενη κατάσταση.
  • git rebase --skip: Παραλείψτε το τρέχον commit με conflict (μπορεί να είναι επικίνδυνο).

Είναι σημαντικό να δοκιμάσετε τις αλλαγές μετά την επίλυση των conflicts, για να βεβαιωθείτε ότι ο κώδικας λειτουργεί σωστά.