Πώς να κάνετε γρήγορη προώθηση και ενημέρωση ενός κλάδου Git

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

Γρήγορη προώθηση ενός κλάδου Git

Στο Git, οι κλάδοι είναι απλώς δείκτες σε μια συγκεκριμένη δέσμευση, που ονομάζεται HEAD του κλάδου. Ο κλάδος είναι απλώς μια ετικέτα που μπορεί να αλλάξει όταν ο κλάδος ενημερώνεται με νέες δεσμεύσεις ή συγχωνεύεται με άλλο.

Για να συγχωνεύσετε δύο αποκλίνοντες κλάδους μαζί, μπορείτε να χρησιμοποιήσετε

git merge

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

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

release

Η HEAD κλάδου περιλαμβάνεται σε

develop

‘s ιστορικό, που σημαίνει ότι δεν υπάρχει ανάγκη για δέσμευση συγχώνευσης. Αντι αυτου,

release

ενημερώνεται για να δείχνει σε

develop

.

Δεν υπάρχει ιδιαίτερο

git

-forward

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

λαμβάνω

οι αλλαγές. Σε αυτήν την περίπτωση,

release

ενημερώνεται το υποκατάστημα, οπότε ανατρέχουμε στην έκδοση:

git checkout release

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

git merge develop

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

Απομακρυσμένα Υποκαταστήματα γρήγορης προώθησης

Ένα πράγμα που πρέπει να σημειωθεί είναι ότι η γρήγορη προώθηση θα ενημερώσει μόνο το τοπικό σας αποθετήριο. Θα χρειαστεί να πιέσετε στο Github για να ενημερώσετε το τηλεχειριστήριο. Εάν χρησιμοποιείτε πρόγραμμα-πελάτη GUI, ενδέχεται να δείτε ότι η ετικέτα για το απομακρυσμένο αποθετήριο δεν είναι ενημερωμένη μέχρι να κάνετε ώθηση.

Η γρήγορη προώθηση του κλάδου δεν δημιουργεί δέσμευση, αλλά θα πρέπει να ενεργοποιεί αγωγούς CI/CD όπως το Github Actions. Εάν δεν το κάνει, υπάρχει μια επιλογή να δημιουργείτε πάντα μια δέσμευση συγχώνευσης:

git merge --no-ff

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

--no-ff

η σημαία θα αποτρέψει αυτή τη συμπεριφορά.

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

--ff-only

σημαία.


HowToGeek.com



You might also like


Leave A Reply



Cancel Reply

Your email address will not be published.