Podstawy łączenia i usuwania gałęzi w Git

Basics Git Merging



Rozgałęzienie może pomóc w organizacji pracy. Musisz jednak mieć możliwość scalenia swojej pracy, aby praca była spójna. Jeśli nigdy nie połączysz i nie usuniesz gałęzi, Twoja historia może stać się zbyt chaotyczna, aby ją zrozumieć.

Praca ze scalaniem i usuwaniem gałęzi

Stwórzmy najpierw gałąź master, wstawmy kilka zatwierdzeń, stwórzmy nową gałąź o nazwie features, dodajmy kilka zatwierdzeń, a następnie wróćmy do mastera i zatwierdźmy ponownie. Oto polecenia:







$mkdirMoja gra
$Płyta CDMoja gra
$git init
$wyrzucił „Decyzja projektowa 1: Brainstarm” >>projekt.txt
$git dodaj -DO
$git commit -m „C0: Rozpoczęty projekt”
$wyrzucił „Decyzja projektowa 2: Napisz kod” >>projekt.txt
$git dodaj -DO
$git commit -m „C1: Przesłany kod”
$git oddziałcechy
$git kasacechy
$wyrzucił „Dodaj funkcję 1” >>funkcja.txt
$git dodaj -DO
$git commit -m „C2: Cecha 1”
$wyrzucił „Dodaj funkcję 2” >>funkcja.txt
$git dodaj -DO
$git commit -m „C3: Cecha 2”
$git kasagospodarz
$wyrzucił „Ponowna modyfikacja mistrza” >>projekt.txt
$git dodaj -DO
$git commit -m 'C4: Modyfikacja Mistrza'

Powyższe polecenia stworzyły następującą sytuację:





Możesz sprawdzić historię dwóch gałęzi, aby zobaczyć, jakie mają zatwierdzenia:





$status git
Na mistrzu oddziału
nic do zatwierdzenia, katalog roboczy czysty
$git log --jedna linia
2031b83 C4: Zmodyfikowano mistrza
1c0b64c C1: Przesłany kod

$git kasacechy
Przełączono na oddział'cechy'

$git log --jedna linia
93d220b C3: Cecha2
ad6ddb9 C2: Funkcja1
1c0b64c C1: Przesłany kod
ec0fb48 C0: Rozpoczęty projekt

Załóżmy teraz, że chcesz przenieść wszystkie zmiany z gałęzi features do gałęzi master. Będziesz musiał rozpocząć proces od miejsca docelowego scalenia. Ponieważ chcemy połączyć się z gałęzią master, musisz zainicjować proces stamtąd. Sprawdźmy więc gałąź master:

$git kasagospodarz
Przełączono na oddział'gospodarz'

$status git
Na mistrzu oddziału
nic do zatwierdzenia, katalog roboczy czysty

Teraz stwórzmy scalenie:



$git scalaniacechy

Jeśli podczas scalania nie ma konfliktów, otworzy się edytor tekstu z komentarzami:

Scal oddział'cechy'

# Proszę wpisać komunikat zatwierdzenia, aby wyjaśnić, dlaczego to połączenie jest konieczne,
# zwłaszcza jeśli łączy zaktualizowane upstream z gałęzią tematyczną.
#
# Linie zaczynające się od '#' będą ignorowane, a pusta wiadomość zostanie przerwana
# zatwierdzenie.

Możesz modyfikować komentarze lub akceptować te domyślne. Wynik scalania powinien pokazywać takie wyniki:

Scalanie wykonane przez„rekursywny”strategia.
funkcja.txt| 2++
1 plikzmieniony,2wstawki(+)
tryb tworzenia100644funkcja.txt

Po scaleniu masz następujący warunek:

Jeśli sprawdzisz logi, znajdziesz:

$status git
Na mistrzu oddziału
nic do zatwierdzenia, katalog roboczy czysty

$git log --jedna linia
46539a3 C5: Połącz gałąź'cechy'
2031b83 C4: Zmodyfikowano mistrza
93d220b C3: Cecha2
ad6ddb9 C2: Funkcja1
1c0b64c C1: Przesłany kod
ec0fb48 C0: Rozpoczęty projekt

Pomyślnie scaliłeś zmiany. Jednak gałąź funkcji jest nadal obecna.

$git oddział -do
cechy
*gospodarz

Możesz go usunąć za pomocą następującego polecenia:

$git oddział -Dcechy

Jeśli sprawdzisz teraz, powinieneś zobaczyć tylko gałąź master:

$git oddział -do
*gospodarz

Wniosek

Upewnij się, że regularnie sprawdzasz nieużywane gałęzie i usuwasz je. Chcesz utrzymać swoje repozytorium w czystości, aby ułatwić nawigację i zrozumienie.

Dalsza lektura: