Όταν εργάζεστε με το Git, προκύπτουν διενέξεις όταν υπάρχει επικάλυψη ή σύγκρουση μεταξύ αλλαγών στον πηγαίο κώδικα.
Για παράδειγμα, δύο άτομα κάνουν αλλαγές στην ίδια γραμμή σε ένα αρχείο. Σε τέτοιες περιπτώσεις, το Git δεν μπορεί να προσδιορίσει αυτόματα την τελική έκδοση και απαιτεί την παρέμβαση του χρήστη για την επίλυση της διένεξης.
Ακολουθούν τα λεπτομερή βήματα για την επίλυση διενέξεων στο Git:
Προσδιορίστε τη σύγκρουση
Όταν εκτελείτε την εντολή git merge
ή git pull
και προκύπτουν διενέξεις, το Git θα σας ειδοποιήσει για τη διένεξη και θα εμφανίσει μια λίστα με αρχεία που βρίσκονται σε διένεξη.
Ελέγξτε τα αρχεία που βρίσκονται σε διένεξη
Ανοίξτε τα αρχεία που βρίσκονται σε διένεξη σε ένα πρόγραμμα επεξεργασίας κειμένου και εντοπίστε τις θέσεις των ενοτήτων κώδικα που βρίσκονται σε διένεξη. Τα αντικρουόμενα μέρη θα επισημαίνονται με "<<<<<<<", "=======" και ">>>>>>>".
Παράδειγμα:
<<<<<<< HEAD
Code from your branch
=======
Code from the other branch
>>>>>>> other-branch
Επιλύστε τη σύγκρουση
Τροποποιήστε τον πηγαίο κώδικα για να επιλύσετε τη διένεξη. Μπορείτε να διατηρήσετε ένα τμήμα του κώδικα, να τροποποιήσετε τον υπάρχοντα κώδικα ή ακόμα και να αντικαταστήσετε ολόκληρο τον κώδικα με μια εντελώς νέα έκδοση. Ο στόχος είναι να διασφαλιστεί ότι ο πηγαίος κώδικας λειτουργεί σωστά και πληροί τις απαιτήσεις του έργου μετά την επίλυση της σύγκρουσης.
Παράδειγμα, μετά την επίλυση της σύγκρουσης:
Updated code that resolves the conflict
Κάντε τις αλλαγές μετά την επίλυση της σύγκρουσης
Χρησιμοποιήστε την git add
εντολή για να ορίσετε το επιλυμένο αρχείο για δέσμευση. Στη συνέχεια, χρησιμοποιήστε την git commit
εντολή για να δημιουργήσετε μια νέα δέσμευση που καταγράφει τις επιλυμένες αλλαγές.
Παράδειγμα:
git add myfile.txt
git commit -m "Resolve conflict in myfile.txt"
Σημείωση: Κατά τη διαδικασία επίλυσης συγκρούσεων, μπορεί να χρειαστεί να συζητήσετε και να συνεργαστείτε με άλλα μέλη της ομάδας για να καταλήξετε σε συναίνεση σχετικά με την κατάλληλη επίλυση της σύγκρουσης.
Ακολουθώντας αυτά τα βήματα, μπορείτε να επιλύσετε αποτελεσματικά τις διενέξεις στο Git, διασφαλίζοντας τη συνέχεια και τον συγχρονισμό στη διαδικασία ανάπτυξης λογισμικού και διαχείρισης πηγαίου κώδικα.