Praca z gałęziami za pomocą Bitbucket Cloud
Cel
Z pomocą tego samouczka poznasz podstawy tworzenia, przeglądania i scalania gałęzi, a także pracy w gałęziach przy użyciu Git i Bitbucket Cloud.
Godzina | Publiczność | Wymagania wstępne |
---|---|---|
35 minut | Znasz już podstawy zagadnienia przepływów pracy Git | Zainstalowany system Git |
Konto Bitbucket |
Ten samouczek jest przeznaczony dla osób, które znają już podstawowe koncepcje przepływów pracy Git, w tym:
- Klonowanie: kopiowanie zdalnego repozytorium w usłudze Bitbucket Cloud do systemu lokalnego
- Dodawanie / przenoszenie do przechowalni: przygotowywanie wykonanych zmian w celu dodania ich do historii Git
- Zatwierdzanie: dodawanie nowych lub zmienionych plików do historii Git dla repozytorium
- Ściąganie: pobieranie do lokalnego repozytorium zmian dodanych przez inne osoby
- Wypychanie: przenoszenie zmian z systemu lokalnego do zdalnego repozytorium
Jeśli nie znasz podstaw Git, nie martw się — po prostu skorzystaj z naszego samouczka Poznaj środowisko Git z rozwiązaniem Bitbucket Cloud, a prędko będziesz na bieżąco.
Poproś o konfigurację
Ponieważ chcemy Ci zapewnić poczucie pracy w zespole, we wspólnym repozytorium Bitbucket, proponujemy dokonanie podziału dostarczonego przez nas publicznego repozytorium.
- Wejdź na stronę tutorials/tutorials.git.bitbucket.org
- Kliknij + > Fork this repository (Podziel to repozytorium) po lewej stronie ekranu.
- Zmodyfikuj pole Name tak, aby nazwa była unikatowa dla Twojego zespołu, a następnie kliknij Fork repository (Podziel repozytorium).
- Utwórz dla repozytorium katalog o łatwym dostępie. Polecenie może wyglądać następująco:
$ mkdir test-repositories $ cd test-repositories/ $ test-repositories
- Sklonuj podzielone repozytorium do właśnie utworzonego katalogu. Widok powinien być mniej więcej następujący:
$ git clone https://dstevenstest@bitbucket.org/dstevenstest/mygittutorial.bitbucket.io.git Cloning into 'mygittutorial.bitbucket.io'... remote: Counting objects: 12392, done. remote: Compressing objects: 100% (12030/12030), done. remote: Total 12392 (delta 8044), reused 564 (delta 360) Receiving objects: 100% (12392/12392), 2.72 MiB | 701.00 KiB/s, done. Resolving deltas: 100% (8044/8044), done. $ cd mygittutorial.bitbucket.io/
Tworzenie gałęzi i dokonywanie zmian przy użyciu przepływu pracy z gałęziami
W tej gałęzi dodamy cytat na stronę internetową.
- Utwórz gałąź za pomocą polecenia git branch.
$ git branch test-1
- Wyewidencjonuj utworzoną właśnie gałąź za pomocą polecenia git checkout.
$ git checkout test-1 Switched to branch 'test-1'
- Uzyskaj listę lokalnych gałęzi za pomocą polecenia git branch.
$ git branch main * test-1
- Zaktualizuj plik editme.html, dodając do niego cytat. Możesz użyć np.:
This is a quote, and I like it.
A quote: The Art of Quoting - Dodaj tę zmianę.
git add editme.html
- Zatwierdź zmianę za pomocą opisowego komunikatu commitu.
git commit editme.html -m'added a new quote' [test-1 063b772] added a new quote 1 file changed, 3 insertions(+), 3 deletions(-)
- Wypchnij tę zmianę do Bitbucket za pomocą polecenia git push.
git push fatal: The current branch test-1 has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin test-1
- Wypchnij gałąź i zmianę za pomocą polecenia git push branch.
$ git push origin test-1 Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 363 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: remote: Create pull request for test-1: remote: https://bitbucket.org/dstevenstest/dans.git.bitbucket.org/pull-requests/new?source=test-1&t=1 remote: To https://bitbucket.org/dstevenstest/dans.git.bitbucket.org.git * [new branch] test-1 -> test-1
- Otwórz repozytorium samouczka i kliknij Branches (Gałęzie) Powinny być teraz widoczne zarówno gałąź main, jak i test-1. Widok powinien być mniej więcej następujący:

Tworzenie, pobieranie i wyewidencjonowywanie zdalnej gałęzi
Jeżeli pracujesz w zespole, z pewnością zdarzy Ci się ściągać lub pobierać gałęzie stworzone przez innych członków zespołu i wypchnięte do Bitbucket. Na podstawie poniższego przykładu zapoznasz się z podstawami tworzenia i pracy z gałęziami tworzonymi przez innych.
- GałąźPrzejdź do repozytorium ćwiczeniowego w Bitbucket, a następnie kliknij Branches (Gałęzie). Widok powinien być mniej więcej następujący:
- Wybierz opcję Create branch (Utwórz gałąź), nadaj gałęzi nazwę test-2, a następnie kliknij Create (Utwórz).
- Skopiuj polecenie git fetch w oknie dialogowym wyewidencjonowania gałęzi. Będzie to wyglądało mniej więcej następująco:
$ git fetch && git checkout test-2 From https://bitbucket.org/dstevenstest/dans.git.bitbucket.org * [new branch] test-2 -> origin/test-2 Branch test-2 set up to track remote branch test-2 from origin. Switched to a new branch 'test-2'
- Użyj polecenia git branch w terminalu. Powinna się wyświetlić lista gałęzi:
$ git branch main test-1 * test-2
- Użyj polecenia git status, a wyświetli się mniej więcej następująca treść:
$ git status On branch test-2 Your branch is up-to-date with 'origin/test-2'. nothing to commit, working tree clean
- Użyj polecenia git checkout, aby przenieść się z powrotem do drugiej gałęzi. Polecenie będzie wyglądać mniej więcej następująco:
$ git checkout test-1 Switched to branch 'test-1' Your branch is ahead of 'origin/test-1' by 3 commits. (use "git push" to publish your local commits)
Wypchnięcie zmiany i utworzenie pull requestu
Teraz nadszedł czas, aby poddać pierwszą zmianę przeglądowi i scalić gałąź.
- Kliknij przycisk +> Create a pull request (Utwórz pull request). Teraz widzisz swoją gałąź test-1 jako gałąź źródłową oraz main w gałęzi docelowej.
- Kliknij przycisk Create pull request (Utwórz pull request).
- Dodaj komentarz do pull requestu, zaznaczając wiersz w wykazie różnic (obszar wyświetlający zmianę dokonaną w pliku editme.html ).
- Kliknij Approve (Zaakceptuj) w lewym górnym rogu strony. Oczywiście w prawdziwym pull requeście mielibyśmy recenzentów zgłaszających uwagi.
- Kliknij opcję Merge (Scal).
- (Opcjonalnie) Zaktualizuj komunikat commitu (Commit message), podając więcej szczegółów.
- Wybierz strategię scalenia Merge commit (Commit scalenia) spośród dwóch opcji:
- Merge commit (Commit scalenia) — zachowuje wszystkie commity z gałęzi źródłowej i czyni je częścią gałęzi docelowej. Opcja ta daje ten sam efekt co wpisanie polecenia git merge --no-ff w wierszu poleceń.
- Squash (Squashowanie) — łączy commity podczas scalania gałęzi źródłowej z docelową. Opcja ta daje ten sam efekt co wpisanie polecenia git merge --squash w wierszu poleceń.
- Kliknij przycisk Commits (Commity), a zobaczysz, jak scalona gałąź wpisuje się w szerszy zakres zmian.
Usuwanie gałęzi i ściąganie zawartości gałęzi main do lokalnej gałęzi roboczej
Udało Ci się przebrnąć przez podstawowy przepływ pracy z gałęziami, a Twoja zmiana znajduje się w gałęzi main. Ostatnią rzeczą, której się nauczymy, będzie usunięcie scalonej właśnie gałęzi, ściągnięcie zaktualizowanej gałęzi main i scalenie zaktualizowanej gałęzi main z gałęzią test-2.
- Otwórz terminal i uruchom polecenie git status. Wynik powinien wyglądać mniej więcej następująco:
$ git status On branch test-1 nothing to commit, working tree clean
- Przełącz się na gałąź main za pomocą polecenia git checkout main. Wynik powinien wyglądać mniej więcej tak:
git checkout main Switched to branch 'main' Your branch is up-to-date with 'origin/main'.
- Uruchom polecenie git pull. Wynik powinien wyglądać mniej więcej tak:
$ git pull remote: Counting objects: 1, done. remote: Total 1 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (1/1), done. From https://bitbucket.org/dstevenstest/dans.git.bitbucket.org 2d4c0ab..dd424cb main -> origin/main Updating 2d4c0ab..dd424cb Fast-forward editme.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
- Uruchom polecenie git branch -d {nazwa_gałęzi}, aby usunąć gałąź test-1. Wynik powinien wyglądać mniej więcej tak:
$ git branch -d test-1 Deleted branch test-1 (was 063b772)
- Przełącz na gałąź test-2 za pomocą polecenia git checkout.
$ git checkout test-2 Switched to branch 'test-2' Your branch is up-to-date with 'origin/test-2'.
- Scal gałąź main z gałęzią roboczą za pomocą polecenia git merge main test-2. Wynik powinien wyglądać mniej więcej tak:
$ git merge main test-2 Updating 2d4c0ab..dd424cb Fast-forward editme.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
- Ma znaczenie, która gałąź jest aktywna. Jeśli chcesz scalić gałąź main z gałęzią test-2, gałąź test-2 musi być wyewidencjonowana (aktywna). To samo dotyczy sytuacji, gdy chcesz scalić gałąź test-2 z gałęzią main — gałąź main musi być wyewidencjonowana.
- Aby zobaczyć, która gałąź jest aktywna w danym momencie, użyj polecenia git branch, a aktywna gałąź zostanie oznaczona gwiazdką, albo użyj polecenia git status, aby się dowiedzieć, na której gałęzi się znajdujesz i czy są w niej oczekujące zmiany lokalne.
Mamy nadzieję, że zdołaliśmy skutecznie przybliżyć zagadnienie pracy z gałęziami i związanych z tym poleceń. Podsumujmy to, co właśnie omówiliśmy:
Przegląd przepływu pracy z gałęziami
Przepływ pracy gałęzi funkcji Git to skuteczny sposób na rozpoczęcie współpracy zespołowej w Bitbucket. W ramach tego przepływu cały rozwój funkcji odbywa się w gałęziach oddzielonych od głównej. Dzięki temu wielu programistów może pracować nad własnymi funkcjami bez dotykania głównego kodu.
![]() | Zacznijmy od gałęzi głównejTen przepływ pracy umożliwia współpracę nad kodem z co najmniej jedną osobą. Jeśli Twoje repozytoria Bitbucket i lokalne są aktualne, możesz zaczynać. |
Tworzenie nowej gałęziUżyj oddzielnej gałęzi dla każdej funkcji lub problemu, nad którym pracujesz. Po utworzeniu gałęzi wyewidencjonuj ją lokalnie, aby wszelkie wprowadzone zmiany znajdowały się w tej gałęzi. | |
Aktualizacja, dodawanie, zatwierdzanie i wypychanie zmianPracuj nad funkcją i dokonuj zatwierdzeń tak, jak zazwyczaj, gdy używasz Git. Gdy nadejdzie właściwy moment, wypchnij commity, aktualizując gałąź funkcji w Bitbucket. | |
Przegląd koduAby uzyskać opinię na temat kodu, utwórz pull request w Bitbucket. Za jego pośrednictwem możesz dodawać recenzentów i upewnić się, że wszystko jest w porządku przed scaleniem. | |
Zastosowanie uwag zwrotnychTeraz współpracownicy komentują i aprobują stan kodu. Wprowadź sugerowane w komentarzach zmiany lokalnie, zatwierdź i wypchnij je do Bitbucket. Twoje aktualizacje pojawią się w pull requeście. | |
Scalenie gałęziPrzed scaleniem może być konieczne rozwiązanie konfliktów scalania w wypadku, gdyby inne osoby wprowadziły zmiany w repozytorium. Gdy pull request zostanie zatwierdzony i będzie wolny od konfliktów, możesz dodać swój kod do gałęzi main. Wykonaj scalenie na podstawie pull requestu w Bitbucket. |
W tym samouczku brak miejsca na pełne przedstawienie, w jaki sposób tworzenie gałęzi zwiększa efektywność zespołów. Istnieje kilka podejść do pracy z gałęziami i niektóre z nich omawiamy w sekcji Porównanie przepływów pracy.