Βασικά στοιχεία συγχώνευσης και διαγραφής κλάδων Git

Basics Git Merging



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

Εργασία με συγχώνευση και διαγραφή κλάδου

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







$mkdirmygame
$CDmygame
$git init
$πέταξε έξω 'Design Decision 1: Brainstarm' >>design.txt
$git add -ΠΡΟΣ ΤΟ
$git commit 'C0: Έναρξη έργου'
$πέταξε έξω «Απόφαση σχεδιασμού 2: Γράψτε κώδικα» >>design.txt
$git add -ΠΡΟΣ ΤΟ
$git commit «C1: Υποβληθείς κωδικός»
$git υποκατάστημαχαρακτηριστικά
$git ταμείοχαρακτηριστικά
$πέταξε έξω 'Προσθήκη χαρακτηριστικού 1' >>feature.txt
$git add -ΠΡΟΣ ΤΟ
$git commit 'C2: Χαρακτηριστικό 1'
$πέταξε έξω 'Προσθήκη χαρακτηριστικού 2' >>feature.txt
$git add -ΠΡΟΣ ΤΟ
$git commit 'C3: Χαρακτηριστικό 2'
$git ταμείοκύριος
$πέταξε έξω «Τροποποίηση ξανά του κυρίου» >>design.txt
$git add -ΠΡΟΣ ΤΟ
$git commit 'C4: Master Modified'

Οι παραπάνω εντολές δημιούργησαν την ακόλουθη κατάσταση:





Μπορείτε να ελέγξετε το ιστορικό των δύο κλάδων για να δείτε ποιες δεσμεύσεις έχουν:





$git κατάσταση
Στο master master
τίποτα για δέσμευση, καθαρός κατάλογος εργασίας
$git log --μία γραμμή
2031b83 C4: Master τροποποιήθηκε
1c0b64c C1: Υποβληθείς κωδικός

$git ταμείοχαρακτηριστικά
Μετάβαση σε υποκατάστημα'χαρακτηριστικά'

$git log --μία γραμμή
93d220b C3: Χαρακτηριστικό2
ad6ddb9 C2: Χαρακτηριστικό1
1c0b64c C1: Υποβληθείς κωδικός
ec0fb48 C0: Έναρξη έργου

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

$git ταμείοκύριος
Μετάβαση σε υποκατάστημα'κύριος'

$git κατάσταση
Στο master master
τίποτα για δέσμευση, καθαρός κατάλογος εργασίας

Τώρα ας δημιουργήσουμε τη συγχώνευση:



$git συγχώνευσηχαρακτηριστικά

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

Συγχώνευση υποκαταστήματος'χαρακτηριστικά'

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

Μπορείτε να τροποποιήσετε τα σχόλια ή να αποδεχτείτε τα προεπιλεγμένα. Η έξοδος συγχώνευσης θα πρέπει να εμφανίζει τα εξής αποτελέσματα:

Συγχώνευση που έγινε από την'αναδρομική'στρατηγική.
feature.txt| 2++
1 αρχείοάλλαξε,2εισαγωγές(+)
δημιουργία λειτουργίας100644feature.txt

Μετά τη συγχώνευση, έχετε την ακόλουθη συνθήκη:

Εάν ελέγξετε τα αρχεία καταγραφής, θα βρείτε:

$git κατάσταση
Στο master master
τίποτα για δέσμευση, καθαρός κατάλογος εργασίας

$git log --μία γραμμή
46539a3 C5: Συγχώνευση κλάδου'χαρακτηριστικά'
2031b83 C4: Master τροποποιήθηκε
93d220b C3: Χαρακτηριστικό2
ad6ddb9 C2: Χαρακτηριστικό1
1c0b64c C1: Υποβληθείς κωδικός
ec0fb48 C0: Έναρξη έργου

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

$git υποκατάστημα -προς το
χαρακτηριστικά
*κύριος

Μπορείτε να το διαγράψετε με την ακόλουθη εντολή:

$git υποκατάστημα -ρεχαρακτηριστικά

Εάν ελέγξετε τώρα, θα πρέπει να δείτε μόνο τον κύριο κλάδο:

$git υποκατάστημα -προς το
*κύριος

συμπέρασμα

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

Περαιτέρω ανάγνωση: