Noțiuni de bază despre fuziunea Git și ștergerea ramurilor

Basics Git Merging



Ramificarea vă poate ajuta să vă păstrați munca organizată. Cu toate acestea, trebuie să vă puteți îmbina munca pentru a face munca coerentă. Dacă nu combinați și ștergeți niciodată ramurile, istoricul dvs. ar putea deveni prea haotic pentru a înțelege.

Lucrul cu Fuziunea și Ștergerea filialei

Să creăm mai întâi o ramură master, să introducem câteva confirmări, să creăm o nouă ramură numită caracteristici, să adăugăm câteva validări, apoi să revenim la master și să angajăm din nou. Iată comenzile:







$mkdirjocul meu
$CDjocul meu
$git init
$aruncat „Decizia de proiectare 1: Brainstarm” >>design.txt
$git add -LA
$git commit -m „C0: Proiectul a început”
$aruncat „Decizia de proiectare 2: Scrieți codul” >>design.txt
$git add -LA
$git commit -m „C1: Codul trimis”
$ramură gitCaracteristici
$git checkoutCaracteristici
$aruncat „Adăugați caracteristica 1” >>feature.txt
$git add -LA
$git commit -m „C2: caracteristica 1”
$aruncat „Adăugați caracteristica 2” >>feature.txt
$git add -LA
$git commit -m „C3: Caracteristica 2”
$git checkoutmaestru
$aruncat „Maestrul modificator din nou” >>design.txt
$git add -LA
$git commit -m „C4: Master Modified”

Comenzile de mai sus au creat următoarea situație:





Puteți verifica istoricul celor două ramuri pentru a vedea ce angajamente au:





$starea git
Pe maestrul de ramură
nimic de comis, directorul de lucru curat
$git log --o linie
2031b83 C4: Master Modified
1c0b64c C1: Cod trimis

$git checkoutCaracteristici
A trecut la sucursală'Caracteristici'

$git log --o linie
93d220b C3: Caracteristică2
ad6ddb9 C2: caracteristică1
1c0b64c C1: Cod trimis
ec0fb48 C0: Proiect lansat

Să presupunem că doriți să aduceți toate modificările de la ramura de funcții la ramura noastră principală. Va trebui să începeți procesul de la destinația îmbinării. Deoarece vrem să fuzionăm în ramura principală, trebuie să inițiați procesul de acolo. Deci, să verificăm filiala principală:

$git checkoutmaestru
A trecut la sucursală'maestru'

$starea git
Pe maestrul de ramură
nimic de comis, directorul de lucru curat

Acum să creăm fuziunea:



$git mergeCaracteristici

Dacă nu există conflicte în îmbinare, veți obține un editor de text deschis cu comentariile:

Fuzionează ramura'Caracteristici'

# Vă rugăm să introduceți un mesaj de confirmare pentru a explica de ce este necesară această îmbinare,
# mai ales dacă îmbină un upstream actualizat într-o ramură de subiect.
#
# Liniile care încep cu „#” vor fi ignorate și un mesaj gol se întrerupe
# comiterea.

Puteți modifica comentariile sau le puteți accepta pe cele implicite. Ieșirea de îmbinare ar trebui să afișeze rezultate de genul acesta:

Îmbinarea făcută de„recursiv”strategie.
feature.txt| 2++
1 fişierschimbat,2inserții(+)
mod de creare100644feature.txt

După îmbinare, aveți următoarea condiție:

Dacă verificați jurnalele, veți găsi:

$starea git
Pe maestrul de ramură
nimic de comis, directorul de lucru curat

$git log --o linie
46539a3 C5: Fuzionează ramura'Caracteristici'
2031b83 C4: Master Modified
93d220b C3: Caracteristică2
ad6ddb9 C2: caracteristică1
1c0b64c C1: Cod trimis
ec0fb48 C0: Proiect lansat

Ați îmbinat cu succes modificările. Cu toate acestea, ramura caracteristică este încă prezentă.

$ramură git -la
Caracteristici
*maestru

Puteți să-l ștergeți cu următoarea comandă:

$ramură git -dCaracteristici

Dacă bifați acum, ar trebui să vedeți doar ramura principală:

$ramură git -la
*maestru

Concluzie

Asigurați-vă că verificați în mod regulat dacă există ramuri neutilizate și le ștergeți. Doriți să vă păstrați depozitul curat pentru a ușura navigarea și înțelegerea.

Lecturi suplimentare: