Cel

Poznaj podstawy środowiska Git dzięki kosmicznemu samouczkowi.

Opis zadania

Twoim zadaniem jest poznanie zasad środowiska Git poprzez ukończenie samouczka i odnalezienie wszystkich stacji kosmicznych zespołu. Samouczek dotyczy następujących poleceń:

  • git clone, git config, git add, git status, git commit, git push, git pull, git branch, git checkout oraz git merge
Godzina Publiczność Wymagania wstępne
30 minut Dopiero zaczynasz przygodę z Git i Bitbucket Cloud Zainstalowany system Git
Konto Bitbucket

Utwórz repozytorium Git

Jako nasz nowy administrator stacji kosmicznej w Bitbucket musisz dbać o należytą organizację swojej pracy. Gdy tworzysz pliki na potrzeby swojej stacji kosmicznej, musisz trzymać je w jednym miejscu i udostępniać je kolegom z zespołu, bez względu na to, z którego zakamarka wszechświata pracują. W Bitbucket oznacza to dodawanie wszystkiego do repozytorium. Utwórzmy je zatem!

  • Kilka ciekawostek dotyczących repozytoriów

    • Masz dostęp do wszystkich plików w lokalnym repozytorium, niezależnie od tego, czy pracujesz nad jednym, czy wieloma plikami.
    • Możesz przeglądać repozytoria publiczne bez konta Bitbucket, jeśli masz adres URL tego repozytorium.
    • Każde repozytorium należy do konta użytkownika lub zespołu. W przypadku konta użytkownika ten użytkownik jest właścicielem repozytorium. + W przypadku zespołu właścicielem jest dany zespół.
    • Właściciel repozytorium jest jedyną osobą, która może je usunąć. Jeśli repozytorium należy do zespołu, repozytorium może usunąć administrator.
    • Projekt tworzenia kodu może składać się z wielu repozytoriów na wielu kontach, ale może być również jednym repozytorium umieszczonym na pojedynczym koncie.
    • Każde repozytorium może mieć rozmiar maksymalnie 2 GB, ale zalecamy, aby nie było większe niż 1 GB.

Krok 1. Utwórz repozytorium

Początkowo repozytorium utworzone w Bitbucket będzie puste i nie będzie zawierało żadnego kodu. Nie jest to problem, ponieważ wkrótce zaczniesz dodawać do niego pliki. To repozytorium Bitbucket będzie centralnym repozytorium Twoich plików, co oznacza, że inni użytkownicy mogą uzyskać do niego dostęp po otrzymaniu uprawnień. Po utworzeniu repozytorium skopiujesz jego wersję do swojego systemu lokalnego — w ten sposób możesz tę wersję zaktualizować z jednego repozytorium, a następnie przenieść te zmiany do drugiego.

Z centralnego repozytorium do lokalnego repozytorium

Aby utworzyć repozytorium, wykonaj następujące czynności:

  1. W Bitbucket kliknij ikonę + na globalnym pasku bocznym i wybierz opcję Repository (Repozytorium).

    Utwórz menu repozytorium

    W Bitbucket zostanie wyświetlona strona Create a new repository (Utwórz nowe repozytorium). Poświęć trochę czasu na przejrzenie zawartości okna dialogowego. Później możesz zmienić wszystko, co wprowadzisz na tej stronie, z wyjątkiem Repository type (typu repozytorium).

    Utwórz repozytorium

  2. Wprowadź BitbucketStationSupplies w polu Name (Nazwa). Bitbucket używa tej nazwy w adresie URL repozytorium. Przykładowo, jeśli użytkownik the_best ma repozytorium o nazwie awesome_repo, adres URL tego repozytorium to https://bitbucket.org/the_best/awesome_repo.

  3. W obszarze Access level (Poziom dostępu) pozostaw zaznaczone pole This is a private repository (To jest prywatne repozytorium). Prywatne repozytorium jest widoczne tylko dla Ciebie i osób z dostępem. Jeśli to pole nie jest zaznaczone, każdy może zobaczyć Twoje repozytorium.

  4. Wybierz Git dla opcji Repository type (Typ repozytorium). Pamiętaj, że nie możesz zmienić typu repozytorium po kliknięciu przycisku Create repository (Utwórz repozytorium).

  5. Kliknij przycisk Create repository (Utwórz repozytorium). Bitbucket utworzy repozytorium i wyświetli dla niego stronę Overview (Przegląd).

Krok 2. Poznaj nowe repozytorium

Poświęć trochę czasu na poznanie właśnie utworzonego repozytorium. Zapewne jesteś teraz na stronie Overview (Przegląd) repozytorium:

Przegląd repozytorium

Kliknij + na pasku bocznym w celu wyświetlenia wspólnych działań dotyczących repozytorium. Kliknij elementy na pasku bocznym nawigacji, aby zobaczyć, co kryje się za każdym z nich, w tym Settings (Ustawienia), które umożliwiają aktualizowanie szczegółów repozytorium i innych ustawień. Aby wyświetlić skróty umożliwiające poruszanie się po tych elementach, naciśnij klawisz ? na klawiaturze.

Po kliknięciu opcji Commits (Commity) na pasku bocznym zobaczysz, że nie masz żadnych commitów, ponieważ nie utworzono żadnej zawartości dla repozytorium. Twoje repozytorium jest prywatne i nie zaproszono nikogo do niego, więc jako właściciel repozytorium jesteś jedyną osobą, która może teraz tworzyć lub edytować zawartość repozytorium.

Skopiuj repozytorium Git i dodaj pliki

Teraz, gdy masz miejsce do dodawania i udostępniania plików stacji kosmicznej, musisz mieć możliwość dotarcia do nich z systemu lokalnego. Aby to skonfigurować, skopiuj repozytorium Bitbucket do swojego systemu. W Git kopiowanie repozytorium nazywane jest „klonowaniem”. Kiedy klonujesz repozytorium, tworzysz połączenie między serwerem Bitbucket (nazywanym w Git „źródłowym”) a systemem lokalnym.

Ze źródłowego do lokalnego

Krok 1. Sklonuj repozytorium do systemu lokalnego

Otwórz przeglądarkę i okno terminala z pulpitu. Po otwarciu okna terminala wykonaj następujące czynności:

  1. Przejdź do katalogu głównego (~)
 $ cd ~
  1. Po pewnym czasie korzystania z Bitbucket prawdopodobnie będziesz pracować w wielu repozytoriach. Z tego powodu dobrym pomysłem jest utworzenie katalogu zawierającego wszystkie repozytoria.

  1. Utwórz katalog na swoje repozytoria.

 $ mkdir repos
  1. Z poziomu terminala możesz zmienić katalog, w którym chcesz pracować, na nowy katalog repos.
 $ cd ~/repos
  1. W Bitbucket przejdź do repozytorium BitbucketStationLocations

  2. Kliknij ikonę + na globalnym pasku bocznym i wybierz opcję Clone this repository (Klonuj to repozytorium).

    W Bitbucket wyświetli się okno dialogowe klonowania. Domyślnie okno dialogowe klonowania ustawia protokół na HTTPS lub SSH, w zależności od ustawień użytkownika. Na potrzeby tego samouczka nie zmieniaj domyślnego protokołu.

    Okno dialogowe klonowania

  3. Skopiuj wyróżnione polecenie klonowania.

  4. W oknie terminala wklej polecenie skopiowane z Bitbucket i naciśnij klawisz Return.

  5. Wprowadź hasło Bitbucket, gdy terminal o nie poprosi. W przypadku utworzenia konta poprzez połączenie z Google użyj swojego hasła do tego konta.

    • Jeśli wystąpi błąd hasła w systemie Windows:

      • W niektórych wersjach systemu operacyjnego Microsoft Windows i Git może pojawić się błąd podobny do tego w poniższym przykładzie.

        Przykład błędu hasła podczas klonowania w systemie Windows

$ git clone

https://emmap1@bitbucket.org/emmap1/bitbucketstationlocations.git 

Cloning into 'bitbucketspacestation'...

fatal: could not read

Password for 'https://emmap1@bitbucket.org': No such file or directory
      • Jeśli pojawi się ten błąd, w wierszu polecenia wprowadź następujące polecenie:
  $ git config --global core.askpass
      • Następnie wróć do kroku 4 i powtórz proces klonowania. Agent bash powinien teraz wyświetlić monit o podanie hasła. Jednokrotne wykonanie tej czynności powinno być wystarczające.
    • W tym momencie okno terminala powinno wyglądać podobnie do przedstawionego poniżej:
$ cd ~/repos

$ git clone https://emmap1@bitbucket.org/emmap1/bitbucketstationlocations.git
Cloning into 'bitbucketstationlocations'...
Password
warning: You appear to have cloned an empty repository.
    • Wiesz, że Twoje repozytorium jest puste, prawda? Pamiętaj, że nie zostały dodane żadne pliki źródłowe.

  1. Wyświetl zawartość katalogu repos — powinien być w nim widoczny Twój katalog bitbucketstationlocations.

$ ls

Gratulacje! Udało Ci się sklonować repozytorium do lokalnego systemu.

Krok 2. Dodaj plik do lokalnego repozytorium i umieść go w Bitbucket

Repozytorium jest już w Twoim systemie lokalnym, nadszedł więc czas wziąć się do pracy. Teraz musisz zacząć śledzić wszystkie lokalizacje stacji kosmicznych. W tym celu utwórzmy plik dotyczący wszystkich lokalizacji.

  1. Otwórz okno terminala i przejdź do najwyższego poziomu lokalnego repozytorium.
 $ cd ~/repos/bitbucketstationlocations/
  1. Wprowadź poniższy wiersz w oknie terminala, aby utworzyć nowy plik z zawartością.
$ echo "Earth's Moon" >> locations.txt
  1. Jeśli wiersz polecenia nie zwróci żadnego komunikatu, oznacza to, że plik został utworzony poprawnie.

  1. Uzyskaj status swojego lokalnego repozytorium. Polecenie git status pozwala uzyskać informacje o postępie projektu w porównaniu z repozytorium Bitbucket.

    Git wie, że utworzono nowy plik, i widoczny będzie podobny ekran:

$ git status 
 On branch main
 Initial commit
 Untracked files:
   (use "git add <file>..." to include in what will be committed)
     locations.txt
 nothing added to commit but untracked files present (use "git add" to track)
  1. Plik jest nieśledzony, co oznacza, że Git widzi plik, który nie jest częścią poprzedniego commita. Dane o statusie pokazują również następny krok: dodanie pliku.

  1. Poleć systemowi Git, aby śledził nowy plik locations.txt, używając polecenia git add. Podobnie jak podczas tworzenia pliku, polecenie git add nie zwraca żadnego komunikatu, jeśli zostanie wprowadzone poprawnie.

$ git add locations.txt
  1. Polecenie git add przenosi zmiany z katalogu roboczego do przechowalni Git. Przechowalnia to miejsce, w którym można przygotować migawkę zmian przed zatwierdzeniem ich do oficjalnej historii.

    Przenoszenie do przechowalni przy użyciu polecenia git add

  1. Sprawdź status pliku.

 $ git status 
 On branch main
 Initial commit
 Changes to be committed:
   (use "git rm --cached <file>..." to unstage)
     new file: locations.txt
  1. Teraz widać, że nowy plik został dodany do przechowalni i możesz wykonać jego commit, gdy uznasz, że wszystko gotowe. Polecenie git status wyświetla stan katalogu roboczego i migawki w przechowalni.

  1. Wydaj polecenie git commit z komunikatem commita, jak pokazano w następnym wierszu. -m wskazuje, że po poleceniu następuje komunikat commit.

$ git commit -m 'Initial commit' 
 [main (root-commit) fedc3d3] Initial commit
  1 file changed, 1 insertion(+)
  create mode 100644 locations.txt
  1. Polecenie git commit wykonuje commit migawki z przechowalni do historii projektu. W połączeniu z poleceniem git add proces ten definiuje podstawowy przepływ pracy dla wszystkich użytkowników Git.

    git commit

    Do tej pory wszystkie wprowadzone zmiany pozostają w systemie lokalnym i są niewidoczne w repozytorium Bitbucket, dopóki ich nie wypchniesz.

    • Dowiedz się więcej o Git i repozytoriach zdalnych

      • Zdolność Git do komunikowania się ze zdalnymi repozytoriami (w Twoim przypadku zdalnym repozytorium jest Bitbucket) jest podstawą każdego przepływu pracy opartego na Git.

      • Model współpracy Git przydziela każdemu deweloperowi własną kopię repozytorium, wraz z własną lokalną historią i strukturą gałęzi. Użytkownicy zazwyczaj muszą udostępniać serię commitów zamiast pojedynczego zestawu zmian. Zamiast commita zestawu zmian z kopii roboczej do centralnego repozytorium, Git umożliwia udostępnianie całych gałęzi między repozytoriami.

        Tworzenie gałęzi Git

      • Zarządzasz połączeniami z innymi repozytoriami i publikujesz historię lokalną, „wypychając” gałęzie do innych repozytoriów. Możesz zobaczyć wkład innych użytkowników poprzez „ściąganie” gałęzi do lokalnego repozytorium.

  1. Wróć do okna lokalnego terminala i wyślij objęte commitem zmiany do Bitbucket za pomocą polecenia git push origin main. Polecenie to określa, że wypychasz zmiany do gałęzi main (gałęzi w Bitbucket) na źródłowym serwerze Bitbucket.

    Powinna się pojawić podobna zawartość jak w poniższej odpowiedzi:

 $ git push origin main 
 Counting objects: 3, done.
 Writing objects: 100% (3/3), 253 bytes | 0 bytes/s, done.
 Total 3 (delta 0), reused 0 (delta 0) To https://emmap1@bitbucket.org/emmap1/bitbucketstationlocations.git
  * [new branch] main -> main
 Branch main set up to track remote branch main from origin.
  1. Twoje commity znajdują się teraz w zdalnym repozytorium (na serwerze źródłowym).

    git push
  1. Przejdź do repozytorium BitbucketStationLocations w Bitbucket.

  2. Jeśli klikniesz Commits (Commity) na pasku bocznym, zobaczysz jeden commit w repozytorium. Bitbucket łączy wszystkie zmiany dokonane w commicie i wyświetla je. Widać, że w kolumnie Author (Autor) widoczna jest wartość użyta podczas konfigurowania globalnego pliku Git ( ~/.gitconfig).
    Jeśli klikniesz Source (Źródło) na pasku bocznym, zobaczysz, że masz jeden plik źródłowy w repozytorium, czyli właśnie dodany plik locations.txt.

    Commity w Bitbucket

Pamiętasz, jak wyglądało repozytorium po jego utworzeniu? Teraz zapewne wygląda nieco inaczej.

Ściągnij zmiany z repozytorium Git w Bitbucket Cloud

Następnie na liście działań administratora stacji kosmicznej potrzebny jest plik zawierający szczegółowe informacje o lokalizacjach. Ponieważ w tej chwili nie masz wielu lokalizacji, dodasz je bezpośrednio z Bitbucket.

Krok 1. Utwórz plik w Bitbucket

Aby dodać nowy plik z lokalizacjami, wykonaj następujące czynności:

  1. W repozytorium BitbucketStationLocations kliknij Source (Źródło), aby otworzyć katalog źródłowy. Zauważ, że w katalogu jest tylko jeden plik, locations.txt.

    Okno źródła Bitbucket

    A. Strona źródłowa: kliknij łącze, aby otworzyć tę stronę.
    B. Wybór gałęzi: wybierz gałąź, którą chcesz wyświetlić.
    C. Przycisk More options (Więcej opcji): kliknij, aby otworzyć menu z większą liczbą opcji, takich jak dodawanie pliku.
    D. Obszar pliku źródłowego: wyświetl katalog plików w Bitbucket.

  2. Na stronie Source (Źródło) kliknij przycisk More options (Więcej opcji) w prawym górnym rogu i wybierz Add file (Dodaj plik) z menu. Przycisk More options (Więcej opcji) pojawia się tylko po dodaniu przynajmniej jednego pliku do repozytorium.

    Otworzy się strona służąca do utworzenia nowego pliku, jak pokazano na poniższej ilustracji.

    Bitbucket — nowy plikBitbucket — nowy plikBitbucket new fileA. Gałąź z nowym plikiem: zmień, jeśli chcesz dodać plik do innej gałęzi.
    B. Obszar nowego pliku: tutaj możesz dodać zawartość nowego pliku.

  3. Wpisz stationlocations w polu filename (nazwa pliku).

  4. Wybierz HTML z listy Syntax mode (Tryb składni).

  5. Dodaj następujący kod HTML do pola tekstowego:

 <p>Bitbucket has the following space stations:</p>
 <p>
     <b>Earth's Moon</b><br>
     Headquarters
 </p>
  1. Kliknij Commit. Pojawi się pole Commit message (Komunikat commita) z komunikatem: stationlocations created online with Bitbucket (utworzono plik stationlocations online za pomocą Bitbucket).

  2. Kliknij Commit w polu komunikatu.

Masz teraz nowy plik w Bitbucket! Zostanie otwarta strona ze szczegółami dotyczącymi commita, na której możesz zobaczyć właśnie wprowadzoną zmianę:

Gałąź główna

Aby zobaczyć listę commitów wprowadzonych do tej pory, kliknij Commits (Commity) na pasku bocznym.

Krok 2. Ściągnij zmiany z repozytorium zdalnego

Teraz musimy przekazać nowy plik do repozytorium lokalnego. Proces jest dość prosty, w zasadzie to odwrócenie operacji wypchnięcia pliku locations.txt do Bitbucket.

Aby ściągnąć plik do lokalnego repozytorium, wykonaj następujące czynności:

  1. Otwórz okno terminala i przejdź do najwyższego poziomu lokalnego repozytorium.
 $ cd ~/repos/bitbucketstationlocations/
  1. Wprowadź polecenie git pull --all, aby ściągnąć wszystkie zmiany z Bitbucket. (W bardziej złożonych przepływach pracy gałęzi ściąganie i scalanie wszystkich zmian może nie być odpowiednim rozwiązaniem). Wprowadź hasło Bitbucket, gdy terminal o nie poprosi. Terminal powinien wyglądać podobnie jak na poniższym przykładzie
$ git pull --all
 Fetching origin
 remote: Counting objects: 3, done.
 remote: Compressing objects: 100% (3/3), done.
 remote: Total 3 (delta 0), reused 0 (delta 0)
 Unpacking objects: 100% (3/3), done.
 From https://bitbucket.org/emmap1/bitbucketstationlocations
    fe5a280..fcbeeb0 main -> origin/main
 Updating fe5a280..fcbeeb0
 Fast-forward
  stationlocations | 5 ++++++++++++++
  1 file changed, 5 insertions(+)
  create mode 100644 stationlocations
  1. Polecenie git pull pozwala scalić plik ze zdalnego repozytorium (Bitbucket) z repozytorium lokalnym za pomocą jednego polecenia.

    Ze źródłowego do lokalnego
  1. Przejdź do folderu repozytorium w systemie lokalnym, aby zobaczyć właśnie dodany plik.

Doskonale! Oprócz dodania dwóch plików dotyczących lokalizacji stacji kosmicznej ukończyliśmy już podstawowy przepływ pracy Git (klonowanie, dodawanie, zatwierdzanie, wypychanie i ściąganie) między Bitbucket a systemem lokalnym.

Scal plik za pomocą gałęzi Git

Pełnienie funkcji administratora stacji kosmicznej wiąże się z pewnymi obowiązkami. Czasami trzeba przetrzymywać pewne informacje w bezpiecznym miejscu, zwłaszcza podczas tworzenia mapy nowych lokalizacji w Układzie Słonecznym. Gałęzie szkoleniowe umożliwiają aktualizację plików i udostępnianie informacji dopiero w odpowiednim czasie.

Gałęzie są najskuteczniejsze, gdy pracujesz w zespole. Możesz pracować nad własną częścią projektu z własnej gałęzi, ściągać aktualizacje z Bitbucket, a następnie scalić całą pracę z gałęzią main, gdy będzie gotowa. Nasza dokumentacja zawiera szczegółowe informacje na temat tego, dlaczego warto używać gałęzi.

Gałąź reprezentuje niezależną linię rozwoju w repozytorium. Można ją traktować jako zupełnie nowy katalog roboczy, przechowalnię i historię projektu. Zanim utworzysz nowe gałęzie, automatycznie zaczynasz od gałęzi main. Ten schemat pokazuje przykładową gałąź main i drugą gałąź z aktualizacją poprawiającą błędy.

Tworzenie gałęzi Git

Krok 1. Utwórz gałąź i wprowadź zmianę

Utwórz gałąź, w której możesz dodać przyszłe plany stacji kosmicznej, w przypadku których nie chcesz jeszcze wykonywać commita. Gdy przyjdzie czas na udostępnienie planów wszystkim, możesz scalić zmiany do repozytorium Bitbucket, a następnie usunąć niepotrzebną gałąź.

Trzeba jednak pamiętać, że gałęzie są tylko odnośnikami do commitów. Podczas tworzenia gałęzi Git tworzy jedynie nowy odnośnik, nie zaś całkowicie nowy zestaw plików lub folderów. Zanim zaczniesz, repozytorium wygląda mniej więcej tak:

Gałąź główna

Aby utworzyć gałąź, wykonaj następujące czynności:

  1. Otwórz okno terminala i przejdź do najwyższego poziomu lokalnego repozytorium za pomocą następującego polecenia:
cd ~/repos/bitbucketstationlocations/
  1. Utwórz gałąź z poziomu okna terminala.

$ git branch future-plans
  1. To polecenie tworzy gałąź, ale nie przełącza Cię do tej gałęzi, więc Twoje repozytorium wygląda podobnie jak poniżej:

    Utwórz gałąź

    Historia repozytorium nie zmienia się. Pojawia się tylko nowy odnośnik do bieżącej gałęzi. Aby rozpocząć pracę nad nową gałęzią, musisz wyewidencjonować gałąź, której chcesz użyć.

  1. Wyewidencjonuj właśnie utworzoną gałąź, aby zacząć z niej korzystać.

$ git checkout future-plans 
Switched to branch 'future-plans'
  1. Polecenie git checkout współpracuje ściśle z poleceniem git branch. Ponieważ tworzysz gałąź w celu pracy nad czymś nowym, za każdym razem, gdy tworzysz nową gałąź (za pomocą polecenia git branch), musisz ją wyewidencjonować (za pomocą polecenia git checkout), jeśli zamierzasz z niej korzystać. Po wyewidencjonowaniu nowej gałęzi Twój przepływ pracy Git wygląda mniej więcej tak:

    Gałąź funkcji

  1. Wyszukaj folder bitbucketstationlocations w systemie lokalnym i otwórz go. Jak zobaczysz, pojawienie się nowej gałęzi nie spowodowało utworzenia w katalogu żadnych dodatkowych plików ani folderów.

  2. Otwórz plik stationlocations za pomocą edytora tekstowego.

  3. Dokonaj zmian w pliku, dodając kolejną lokalizację stacji:

<p>Bitbucket has the following space stations:</p>
<p>
   <b>Earth's Moon</b><br>
   Headquarters
</p>
<p>
   <b>Mars</b><br>
   Recreation Department
</p>
  1. Zapisz i zamknij plik.

  2. W oknie terminala wprowadź polecenie git status. Widok powinien być mniej więcej następujący:

$ git status 
On branch future-plans
Changes not staged for commit:
 (use "git add <file>..." to update what will be committed)
 (use "git checkout -- <file>..." to discard changes in working directory)
   modified: stationlocations
no changes added to commit (use "git add" and/or "git commit -a")
  1. Widzisz wiersz On branch future-plans? Jeśli wcześniej wprowadzono polecenie git status, wiersz znajdował się w obszarze branch main, ponieważ istniał tylko jeden obszar branch main. Przed przeniesieniem zmiany do przechowalni lub jej zatwierdzeniem zmiany należy zawsze sprawdzić ten wiersz, aby upewnić się, że wyewidencjonowana jest gałąź, w której chcesz wprowadzić zmianę.

  1. Przenieś plik do przechowalni.

$ git add stationlocations
  1. W oknie terminala wpisz polecenie git commit, jak na poniższym rysunku:

$ git commit stationlocations -m 'making a change in a branch' 
[future-plans e3b7732] making a change in a branch
1 file changed, 4 insertions(+)
  1. Z ostatnim commitem repozytorium wygląda mniej więcej tak:

    Commit gałęzi funkcji

    Teraz czas scalić wprowadzoną właśnie zmianę z powrotem z gałęzią main.

Krok 2. Scal gałąź: scalanie fast-forward

Twoja stacja kosmiczna rozrasta się i nadszedł czas na uroczyste otwarcie oddziału na Marsie. Teraz, gdy twoje plany urzeczywistniają się, możesz scalić gałąź future-plans z gałęzią main w systemie lokalnym.

Ponieważ utworzono tylko jedną gałąź i wprowadzono jedną zmianę, do scalenia należy użyć metody fast-forward. Możesz wykonać scalanie fast-forward, ponieważ masz prostą ścieżkę od bieżącej końcówki gałęzi do gałęzi docelowej. Zamiast „faktycznego” scalenia gałęzi, Git po prostu integruje historie, przenosząc (metoda „fast-forward”) końcówkę bieżącej gałęzi do końcówki gałęzi docelowej. W ten sposób można skutecznie połączyć historie, ponieważ wszystkie commity osiągalne z poziomu gałęzi docelowej są teraz dostępne za pośrednictwem gałęzi bieżącej.

Scalanie z przewijaniem

Ten przepływ pracy z gałęziami jest częsty w przypadku krótkotrwałych gałęzi tematycznych z mniejszymi zmianami, ale nie tak powszechny w przypadku bardziej czasochłonnych funkcji.

Aby ukończyć scalanie fast-forward, wykonaj następujące czynności:

  1. Otwórz okno terminala i przejdź do najwyższego poziomu lokalnego repozytorium.
 $ cd ~/repos/bitbucketstationlocations/
  1. Wpisz polecenie git status, aby upewnić się, że wszystkie zmiany zostały objęte commitem i dowiedzieć się, która gałąź została wyewidencjonowana.
$ git status 
On branch future-plans
nothing to commit, working directory clean
  1. Przełącz na gałąź main.
$ git checkout main 
Switched to branch 'main'
Your branch is up-to-date with 'origin/main'.
  1. Scal zmiany z gałęzi future-plans z gałęzią main. Widok powinien być mniej więcej następujący:
$ git merge future-plans 
Updating fcbeeb0..e3b7732
Fast-forward
stationlocations | 4 ++++
1 file changed, 4 insertions(+)
  1. Zasadniczo wskaźnik został przesunięty dla gałęzi main do bieżącego wskaźnika HEAD, a Twoje repozytorium wygląda mniej więcej jak efekt scalenia fast-forward przedstawionego powyżej.
  1. Ponieważ nie planujesz już używać future-plans, możesz usunąć gałąź.

$ git branch -d future-plans 
Deleted branch future-plans (was e3b7732).
  1. Po usunięciu future-plans nadal można uzyskać dostęp do gałęzi z obszaru main za pomocą identyfikatora commita. Na przykład jeśli chcesz cofnąć zmiany dodane z future-plans, użyj właśnie otrzymanego identyfikatora commita, aby wrócić do tej gałęzi.
  1. Wprowadź polecenie git status, aby zobaczyć wyniki scalenia, które pokazują, że Twoje lokalne repozytorium jest bardziej aktualne od repozytorium zdalnego. Widok powinien być mniej więcej następujący:

$ git status 
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
 (use "git push" to publish your local commits)
nothing to commit, working directory clean

Oto operacje wykonane przez Ciebie do tej pory:

  • Utworzenie gałęzi i wyewidencjonowanie jej
  • Wprowadzenie zmiany w nowej gałęzi
  • Wykonanie commita zmiany do nowej gałęzi
  • Zintegrowanie zmiany z powrotem z gałęzią main
  • Usunięcie gałęzi, której już nie używasz.

Następnie musimy wypchnąć całą tę pracę z powrotem do Bitbucket, będącego Twoim zdalnym repozytorium.

Krok 3. Wypchnij zmianę do Bitbucket

Chcesz, aby wszyscy mogli zobaczyć lokalizację nowej stacji kosmicznej. W tym celu możesz wypchnąć bieżący stan lokalnego repozytorium do Bitbucket.

Na tym diagramie pokazano, co się dzieje, gdy w lokalnym repozytorium są zmiany, których nie ma w repozytorium centralnym, gdy wypchniesz te zmiany do Bitbucket.

Przed i po wypchnięciu gałęzi

Oto jak wypchnąć zmiany do zdalnego repozytorium:

  1. W katalogu repozytorium w oknie terminala wprowadź git push origin main, aby wypchnąć zmiany. Wynik powinien być mniej więcej następujący:
 $ git push origin main
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 401 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://emmap1@bitbucket.org/emmap1/bitbucketstationlocations.git
  fcbeeb0..e3b7732 main -> main
  1. Kliknij stronę Overview (Przegląd) w repozytorium Bitbucket. Zobaczysz wypchnięty plik na liście Recent Activity (Ostatnia aktywność).

  2. Kliknij Commits (Commity). Zobaczysz commit wprowadzony w systemie lokalnym. Zauważ, że zmiana zachowuje ten sam identyfikator commita, który miała w systemie lokalnym.

    Aktywność dotycząca commita

    Możesz również zobaczyć, że linia po lewej stronie listy commitów pokazuje prostą ścieżkę bez żadnych gałęzi. To dlatego, że gałąź future-plans nie wchodziła nigdy w interakcję ze zdalnym repozytorium, tylko ze zmianą, którą stworzyliśmy i zatwierdziliśmy.

  3. Kliknij Branches (Gałęzie). Jak zobaczysz, strona nie zawiera żadnych rekordów gałęzi.

  4. Kliknij Source (Źródło), a następnie plik stationlocations. Możesz zobaczyć, że ostatnia zmiana w pliku ma identyfikator commita, który właśnie został wypchnięty.

  5. Kliknij listę historii plików, aby zobaczyć zmiany zatwierdzone dla tego pliku, które będą wyglądać podobnie jak na poniższej ilustracji.

    Historia pliku

Gotowe!

Nie masz pewności, czy zapamiętasz wszystkie omówione polecenia Git? To nie problem. Dodaj naszą stronę z podstawowymi poleceniami Git do zakładek, aby móc do niej zaglądać w razie potrzeby.