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 kasagospodarzPrzełą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 gitNa 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ł -docechy
*gospodarz
Możesz go usunąć za pomocą następującego polecenia:
$git oddział -DcechyJeś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.