Ćwiczenie — tworzenie gałęzi jako Alice

Ukończone

Twój przyjaciel dewelopera Alice chce dodać arkusz CSS, aby stylować zdjęcia kotów w witrynie internetowej. Alicja chce wykonać tę pracę we własnej gałęzi.

Ustawienia

Zanim będzie można przyjąć rolę Alicji, musisz wykonać pewną pracę, aby skonfigurować nagie repozytorium dla wszystkich, aby udostępnić, a następnie dodać kilka plików.

Usługa Git jest już zainstalowana dla nas w usłudze Azure Cloud Shell, więc możemy użyć usługi Git w usłudze Cloud Shell z prawej strony.

Uwaga

W tym ćwiczeniu usługa Cloud Shell musi być w trybie klasycznym . W górnej części okna usługi Cloud Shell wybierz ikonę Więcej (...), wybierz pozycję Ustawienia i wybierz pozycję Przejdź do wersji klasycznej.

Tworzenie udostępnionego repozytorium nagie

  1. Utwórz nowy katalog o nazwie Shared.git , aby przechowywać nagie repozytorium:

    mkdir Shared.git
    cd Shared.git
    
    
  2. Teraz uruchom następujące polecenie, aby utworzyć nagie repozytorium w katalogu udostępnionym:

    git init --bare
    
    
  3. Ustaw nazwę gałęzi domyślnej dla nowego repozytorium. Aby wykonać ten krok, możesz zmienić HEAD gałąź tak, aby wskazywała inną gałąź. W tym przypadku main gałąź:

    git symbolic-ref HEAD refs/heads/main
    
    

Klonowanie repozytorium udostępnionego dla Boba

  1. Przenieś jeden poziom z tego katalogu i utwórz katalog dla Boba, aby zapisać jego repozytorium:

    cd ..
    mkdir Bob
    
    
  2. Sklonuj i skonfiguruj repozytorium dla Boba:

    cd Bob
    git clone ../Shared.git .
    git config user.name Bob
    git config user.email bob@contoso.com
    git symbolic-ref HEAD refs/heads/main
    
    

Uwaga

Ponieważ chcesz rozpocząć od domyślnej maingałęzi , musisz zmienić wartość HEAD , aby wskazać refs/heads/main , a nie refs/heads/master domyślną nazwą gałęzi.

Dodawanie podstawowych plików

W ostatnim kroku konfiguracji dodamy nasze podstawowe pliki witryny internetowej i wypchniemy je do udostępnionego repozytorium. W przypadku tych poleceń nadal pracujemy w katalogu Bob .

  1. Utwórz niektóre pliki, uruchamiając polecenie systemu Linux touch , a następnie przygotuj je i zatwierdź przy użyciu usługi Git:

    touch index.html
    mkdir Assets
    touch Assets/site.css
    git add .
    git commit -m "Create empty index.html and site.css files"
    
    
  2. Teraz dodaj kod HTML do pliku przy użyciu edytora kodu usługi Cloud Shell. Edytor można otworzyć, uruchamiając code polecenie . Otwórz index.html w edytorze online, wprowadzając polecenie code index.html w wierszu polecenia terminalu:

    code index.html
    
    
  3. Wklej następujący kod HTML:

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset='UTF-8'>
        <title>Our Feline Friends</title>
        <link rel="stylesheet" href="CSS/site.css">
      </head>
      <body>
        <nav><a href="./index.html">home</a></nav>
        <h1>Our Feline Friends</h1>
        <p>Eventually we will put cat pictures here.</p>
        <footer><hr>Copyright (c) 2021 Contoso Cats</footer>
      </body>
    </html>
    
  4. Zapisz plik i zamknij edytor. Możesz wybrać wielokropek "..." w prawym rogu edytora lub użyj skrótu (naciśnij Ctrl+S w systemach Windows i Linux; naciśnij Cmd+S w systemie macOS).

  5. Przejdź do katalogu Assets , a następnie otwórz site.css w edytorze:

    cd Assets
    code site.css
    
    
  6. Dodaj następujący kod CSS do pliku:

    h1, h2, h3, h4, h5, h6 { font-family: sans-serif; }
    body { font-family: serif; background-color: #F0FFF8; }
    nav, footer { background-color: #C0D8DF; }
    

    Zapisz plik i zamknij edytor.

  7. Wróć do katalogu Bob i zatwierdź ponownie:

    cd ..
    git add .
    git commit -m "Add simple HTML and stylesheet"
    git push --set-upstream origin main
    
    

    Uwaga

    Ponieważ używamy innej domyślnej nazwy gałęzi, musisz poinformować usługę Git o skojarzeniu gałęzi głównej z gałęzią główną repozytorium źródłowego.

  8. Sprawdź dane wyjściowe. Jeśli zostanie wyświetlone ostrzeżenie podobne do tego przykładu, nie martw się. To ostrzeżenie oznacza tylko, że użytkownicy wiedzą o zmianie domyślnych zachowań usługi Git.

    warning: push.default is unset; its implicit value has changed in
    Git 2.0 from 'matching' to 'simple'. To squelch this message
    and maintain the traditional behavior, use:
    
      git config --global push.default matching
    
    To squelch this message and adopt the new behavior now, run:
    
      git config --global push.default simple
    
    When push.default is set to 'matching', git will push local branches
    to the remote branches that already exist with the same name.
    
    Since Git 2.0, Git defaults to the more conservative 'simple'
    behavior, which only pushes the current branch to the corresponding
    remote branch that 'git pull' uses to update the current branch.
    
    See 'git help config' and search for 'push.default' for further information.
    (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    'current' instead of 'simple' if you sometimes use older versions of Git)
    

    Jeśli chcesz upewnić się, że nie widzisz tego ostrzeżenia ponownie, możesz uruchomić następujące polecenie:

    git config --global push.default simple
    
    
  9. Sprawdź dane wyjściowe dla tego wskaźnika powodzenia:

    Counting objects: 9, done.
    Delta compression using up to 2 threads.
    Compressing objects: 100% (6/6), done.
    Writing objects: 100% (9/9), 953 bytes | 953.00 KiB/s, done.
    Total 9 (delta 0), reused 0 (delta 0)
    To ../Shared.git
     * [new branch]      main -> main
    

Tworzenie gałęzi dla Alice

Alicja chce utworzyć gałąź tematu o nazwie add-style , aby wykonać swoją pracę. Przyjmijmy rolę Alicji, a następnie utwórzmy gałąź i dodajmy kod do tej gałęzi.

  1. Przenieś w górę jeden poziom z tego katalogu i utwórz katalog dla Alicji na potrzeby kopii repozytorium:

    cd ..
    mkdir Alice
    
    
  2. Sklonuj repozytorium dla Alice, a następnie skonfiguruj je:

    cd Alice
    git clone ../Shared.git .
    git config user.name Alice
    git config user.email alice@contoso.com
    
    
  3. Masz teraz bieżącą kopię repozytorium. Aby potwierdzić, możesz wyświetlić listę zawartości pliku i uruchomić polecenie git status , aby potwierdzić stan repozytorium.

    ls
    git status
    
    
  4. Uruchom polecenie , git branch aby utworzyć gałąź o nazwie add-style. Następnie uruchom git checkout polecenie , aby przełączyć się do tej gałęzi (uczynić ją bieżącą gałęzią).

    git branch add-style
    git checkout add-style
    
    
  5. W katalogu Alice/Assets otwórz site.css. Dodaj następującą definicję klasy CSS w dolnej części pliku:

    .cat { max-width: 40%; padding: 5 }
    

    Zapisz zmiany w pliku i zamknij edytor.

  6. Zatwierdź zmianę:

    git commit -a -m "Add style for cat pictures"
    
    
  7. W tym momencie Alicja chce udostępnić swój styl wszystkim innym osobom, więc przełączają się z powrotem do main i wykonują ściąganie, jeśli ktoś inny wprowadził zmiany:

    git checkout main
    git pull
    
    
  8. Dane wyjściowe mówią, że main gałąź jest aktualna (innymi słowy, main na komputerze Alicji jest zgodna main z repozytorium udostępnionym). Dlatego Alice scala add-style gałąź z gałęzią main , uruchamiając polecenie git merge --ff-only , aby przeprowadzić szybkie scalanie. Następnie Alice wypycha main repozytorium do repozytorium udostępnionego.

    git merge --ff-only add-style
    git push
    
    

W tym przypadku scalanie szybkie do przodu nie było ściśle konieczne, ponieważ main gałąź nie miała żadnych zmian, a usługa Git scaliłaby zmiany mimo to. Jednak użycie flagi --ff only jest dobrym rozwiązaniem, ponieważ scalanie kończy się niepowodzeniem --ff-only , jeśli main uległo zmianie.