19 KiB
Wprowadzenie do GitHub
Ta lekcja obejmuje podstawy GitHub, platformy do hostowania i zarządzania zmianami w kodzie.
Sketchnote autorstwa Tomomi Imura
Quiz przed lekcją
Wprowadzenie
W tej lekcji omówimy:
- śledzenie pracy wykonywanej na Twoim komputerze
- pracę nad projektami z innymi
- jak przyczyniać się do rozwoju oprogramowania open source
Wymagania wstępne
Przed rozpoczęciem sprawdź, czy Git jest zainstalowany. W terminalu wpisz:
git --version
Jeśli Git nie jest zainstalowany, pobierz Git. Następnie skonfiguruj swój lokalny profil Git w terminalu:
git config --global user.name "twoje-imie"
git config --global user.email "twoj-email"
Aby sprawdzić, czy Git jest już skonfigurowany, możesz wpisać:
git config --list
Będziesz także potrzebować konta na GitHub, edytora kodu (np. Visual Studio Code) oraz otwartego terminala (lub wiersza poleceń).
Przejdź na github.com i załóż konto, jeśli jeszcze go nie masz, lub zaloguj się i uzupełnij swój profil.
✅ GitHub nie jest jedynym repozytorium kodu na świecie; są inne, ale GitHub jest najbardziej znany.
Przygotowanie
Będziesz potrzebować folderu z projektem kodu na swoim lokalnym komputerze (laptopie lub PC) oraz publicznego repozytorium na GitHub, które posłuży jako przykład, jak przyczyniać się do projektów innych osób.
Zarządzanie kodem
Załóżmy, że masz lokalnie folder z projektem kodu i chcesz zacząć śledzić swoje postępy za pomocą git - systemu kontroli wersji. Niektórzy porównują używanie git do pisania listu miłosnego do siebie w przyszłości. Czytając swoje wiadomości commit po dniach, tygodniach czy miesiącach, będziesz w stanie przypomnieć sobie, dlaczego podjąłeś daną decyzję lub "cofnąć" zmianę - pod warunkiem, że piszesz dobre wiadomości commit.
Zadanie: Utwórz repozytorium i zatwierdź kod
Obejrzyj wideo
-
Utwórz repozytorium na GitHub. Na GitHub.com, w zakładce repozytoriów lub z paska nawigacyjnego w prawym górnym rogu, znajdź przycisk new repo.
- Nadaj swojemu repozytorium (folderowi) nazwę.
- Wybierz create repository.
-
Przejdź do swojego folderu roboczego. W terminalu przejdź do folderu (znanego również jako katalog), który chcesz zacząć śledzić. Wpisz:
cd [name of your folder]
-
Zainicjalizuj repozytorium git. W swoim projekcie wpisz:
git init
-
Sprawdź status. Aby sprawdzić status swojego repozytorium, wpisz:
git status
wynik może wyglądać mniej więcej tak:
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: file.txt modified: file2.txt
Zazwyczaj polecenie
git status
informuje o takich rzeczach jak pliki gotowe do zapisania w repozytorium lub zmiany, które warto utrwalić. -
Dodaj wszystkie pliki do śledzenia To nazywa się również etapowaniem plików/dodawaniem plików do obszaru etapowania.
git add .
Argument
git add
plus.
oznacza, że wszystkie Twoje pliki i zmiany zostaną dodane do śledzenia. -
Dodaj wybrane pliki do śledzenia
git add [file or folder name]
To pozwala dodać tylko wybrane pliki do obszaru etapowania, gdy nie chcesz zatwierdzać wszystkich plików naraz.
-
Cofnij etapowanie wszystkich plików
git reset
To polecenie pozwala cofnąć etapowanie wszystkich plików naraz.
-
Cofnij etapowanie konkretnego pliku
git reset [file or folder name]
To polecenie pozwala cofnąć etapowanie tylko konkretnego pliku, którego nie chcesz uwzględniać w następnym zatwierdzeniu.
-
Utrwal swoją pracę. Na tym etapie dodałeś pliki do tzw. obszaru etapowania. Miejsca, w którym Git śledzi Twoje pliki. Aby zmiana była trwała, musisz zatwierdzić pliki. Aby to zrobić, tworzysz commit za pomocą polecenia
git commit
. Commit reprezentuje punkt zapisu w historii Twojego repozytorium. Wpisz następujące polecenie, aby utworzyć commit:git commit -m "first commit"
To zatwierdza wszystkie Twoje pliki, dodając wiadomość "first commit". W przyszłych wiadomościach commit warto być bardziej opisowym, aby przekazać, jakiego rodzaju zmiany zostały dokonane.
-
Połącz swoje lokalne repozytorium Git z GitHub. Repozytorium Git na Twoim komputerze jest przydatne, ale w pewnym momencie będziesz chciał mieć kopię zapasową swoich plików gdzieś indziej i zaprosić innych do pracy nad swoim repozytorium. Jednym z takich miejsc jest GitHub. Pamiętaj, że już utworzyliśmy repozytorium na GitHub, więc jedyne, co musimy zrobić, to połączyć nasze lokalne repozytorium Git z GitHub. Polecenie
git remote add
właśnie to zrobi. Wpisz następujące polecenie:Uwaga, zanim wpiszesz polecenie, przejdź na stronę swojego repozytorium GitHub, aby znaleźć URL repozytorium. Użyjesz go w poniższym poleceniu. Zastąp
https://github.com/username/repository_name.git
swoim URL GitHub.git remote add origin https://github.com/username/repository_name.git
To tworzy remote, czyli połączenie, nazwane "origin", wskazujące na repozytorium GitHub, które utworzyłeś wcześniej.
-
Wyślij lokalne pliki na GitHub. Do tej pory utworzyłeś połączenie między lokalnym repozytorium a repozytorium GitHub. Wyślij te pliki na GitHub za pomocą następującego polecenia
git push
, jak poniżej:Uwaga, nazwa Twojej gałęzi może być domyślnie inna niż
main
.git push -u origin main
To wysyła Twoje zatwierdzenia w gałęzi "main" na GitHub.
-
Dodawanie kolejnych zmian. Jeśli chcesz kontynuować wprowadzanie zmian i wysyłanie ich na GitHub, wystarczy użyć następujących trzech poleceń:
git add . git commit -m "type your commit message here" git push
Wskazówka, możesz również rozważyć użycie pliku
.gitignore
, aby zapobiec śledzeniu plików, których nie chcesz umieszczać na GitHub - na przykład pliku z notatkami, który przechowujesz w tym samym folderze, ale nie powinien znaleźć się w publicznym repozytorium. Możesz znaleźć szablony plików.gitignore
na stronie .gitignore templates.
Wiadomości commit
Świetna wiadomość commit w linii tematu powinna kończyć następujące zdanie: Jeśli zostanie zastosowana, ten commit <tu wpisz swoją linię tematu>
W temacie używaj trybu rozkazującego, czasu teraźniejszego: "zmień" zamiast "zmieniono" czy "zmienia".
Podobnie w treści (opcjonalnej) używaj trybu rozkazującego, czasu teraźniejszego. Treść powinna zawierać motywację dla zmiany i kontrastować ją z wcześniejszym zachowaniem. Wyjaśniasz dlaczego
, a nie jak
.
✅ Poświęć kilka minut na przeglądanie GitHub. Czy możesz znaleźć naprawdę świetną wiadomość commit? Czy możesz znaleźć bardzo minimalistyczną? Jakie informacje uważasz za najważniejsze i najbardziej przydatne do przekazania w wiadomości commit?
Zadanie: Współpraca
Głównym powodem umieszczania rzeczy na GitHub było umożliwienie współpracy z innymi programistami.
Praca nad projektami z innymi
Obejrzyj wideo
W swoim repozytorium przejdź do Insights > Community
, aby zobaczyć, jak Twój projekt wypada w porównaniu do zalecanych standardów społeczności.
Oto kilka rzeczy, które mogą poprawić Twoje repozytorium GitHub:
- Opis. Czy dodałeś opis swojego projektu?
- README. Czy dodałeś README? GitHub oferuje wskazówki dotyczące pisania README.
- Wytyczne dotyczące współpracy. Czy Twój projekt ma wytyczne dotyczące współpracy?
- Kodeks postępowania. Czy dodałeś Kodeks postępowania?
- Licencja. Być może najważniejsze, czy dodałeś licencję?
Wszystkie te zasoby będą korzystne dla nowych członków zespołu. Są to zazwyczaj rzeczy, na które nowi współpracownicy zwracają uwagę, zanim jeszcze spojrzą na Twój kod, aby dowiedzieć się, czy Twój projekt jest odpowiednim miejscem, w którym warto spędzać czas.
✅ Pliki README, choć wymagają czasu na przygotowanie, są często zaniedbywane przez zajętych opiekunów. Czy możesz znaleźć przykład szczególnie opisowego README? Uwaga: istnieją narzędzia pomagające tworzyć dobre README, które możesz wypróbować.
Zadanie: Scal kod
Dokumenty dotyczące współpracy pomagają ludziom przyczyniać się do projektu. Wyjaśniają, jakiego rodzaju wkładu szukasz i jak działa proces. Współpracownicy będą musieli przejść przez szereg kroków, aby móc przyczynić się do Twojego repozytorium na GitHub:
- Forkowanie Twojego repozytorium. Prawdopodobnie będziesz chciał, aby ludzie forkowali Twój projekt. Forkowanie oznacza utworzenie repliki Twojego repozytorium na ich profilu GitHub.
- Klonowanie. Następnie sklonują projekt na swój lokalny komputer.
- Utworzenie gałęzi. Poproś ich o utworzenie gałęzi dla swojej pracy.
- Skupienie się na jednej zmianie. Poproś współpracowników, aby skoncentrowali swoje zmiany na jednej rzeczy naraz - w ten sposób szanse na to, że będziesz mógł scalić ich pracę, są większe. Wyobraź sobie, że naprawiają błąd, dodają nową funkcję i aktualizują kilka testów - co jeśli chcesz lub możesz zaimplementować tylko 2 z 3, albo 1 z 3 zmian?
✅ Wyobraź sobie sytuację, w której gałęzie są szczególnie istotne dla pisania i dostarczania dobrego kodu. Jakie przypadki użycia przychodzą Ci na myśl?
Uwaga, bądź zmianą, którą chcesz zobaczyć na świecie, i twórz gałęzie dla swojej własnej pracy. Każde zatwierdzenie, które wykonasz, będzie wykonane na gałęzi, na której obecnie się znajdujesz. Użyj
git status
, aby zobaczyć, na której gałęzi jesteś.
Przejdźmy przez proces pracy współpracownika. Załóżmy, że współpracownik już forkował i sklonował repozytorium, więc ma gotowe repozytorium Git na swoim lokalnym komputerze:
-
Utwórz gałąź. Użyj polecenia
git branch
, aby utworzyć gałąź, która będzie zawierać zmiany, które zamierza wprowadzić:git branch [branch-name]
-
Przełącz się na gałąź roboczą. Przełącz się na określoną gałąź i zaktualizuj katalog roboczy za pomocą
git switch
:git switch [branch-name]
-
Wykonaj pracę. Na tym etapie chcesz wprowadzić swoje zmiany. Nie zapomnij poinformować o tym Git za pomocą następujących poleceń:
git add . git commit -m "my changes"
Upewnij się, że nadajesz swojemu commitowi dobrą nazwę, zarówno dla siebie, jak i dla opiekuna repozytorium, któremu pomagasz.
-
Połącz swoją pracę z gałęzią
main
. W pewnym momencie kończysz pracę i chcesz połączyć ją z gałęziąmain
. Gałąźmain
mogła się zmienić w międzyczasie, więc upewnij się, że najpierw ją zaktualizujesz do najnowszej wersji za pomocą następujących poleceń:git switch main git pull
Na tym etapie chcesz upewnić się, że wszelkie konflikty, sytuacje, w których Git nie może łatwo połączyć zmian, występują w Twojej gałęzi roboczej. Dlatego uruchom następujące polecenia:
git switch [branch_name] git merge main
To wprowadzi wszystkie zmiany z
main
do Twojej gałęzi i miejmy nadzieję, że możesz po prostu kontynuować. Jeśli nie, VS Code wskaże, gdzie Git jest zdezorientowany, a Ty po prostu zmienisz odpowiednie pliki, aby określić, która zawartość jest najbardziej dokładna. -
Wyślij swoją pracę na GitHub. Wysłanie swojej pracy na GitHub oznacza dwie rzeczy. Wypchnięcie swojej gałęzi do repozytorium i otwarcie PR, Pull Request.
git push --set-upstream origin [branch-name]
Powyższe polecenie tworzy gałąź w Twoim repozytorium forkowanym.
-
Otwórz PR. Następnie chcesz otworzyć PR. Robisz to, przechodząc do forkowanego repozytorium na GitHub. Zobaczysz wskazówkę na GitHub, gdzie pyta, czy chcesz utworzyć nowy PR, kliknij to, a zostaniesz przeniesiony do interfejsu, w którym możesz zmienić tytuł wiadomości commit, nadać jej bardziej odpowiedni opis. Teraz opiekun repozytorium, które forkowałeś, zobaczy ten PR i trzymaj kciuki, doceni go i scali Twój PR. Jesteś teraz współpracownikiem, hurra :)
-
Posprzątaj. Uważa się za dobrą praktykę posprzątanie po pomyślnym scaleniu PR. Chcesz usunąć zarówno lokalną gałąź, jak i gałąź, którą wypchnąłeś na GitHub. Najpierw usuń ją lokalnie za pomocą następującego polecenia:
git branch -d [branch-name]
Upewnij się, że przechodzisz na stronę GitHub dla forkowanego repozytorium i usuwasz zdalną gałąź, którą właśnie tam wypchnąłeś.
Pull request
wydaje się być dziwnym określeniem, ponieważ tak naprawdę chcesz "wypchnąć" swoje zmiany do projektu. Jednak osoba odpowiedzialna za projekt (właściciel projektu) lub główny zespół musi rozważyć Twoje zmiany przed ich połączeniem z "główną" gałęzią projektu, więc w rzeczywistości prosisz o decyzję dotyczącą zmiany od osoby zarządzającej projektem.
Pull request to miejsce, gdzie można porównać i omówić różnice wprowadzone w gałęzi, korzystając z recenzji, komentarzy, zintegrowanych testów i innych narzędzi. Dobry pull request przestrzega mniej więcej tych samych zasad co wiadomość commit. Możesz dodać odniesienie do problemu w trackerze problemów, na przykład gdy Twoja praca rozwiązuje jakiś problem. Robi się to za pomocą #
, po którym następuje numer problemu. Na przykład #97
.
🤞Trzymamy kciuki, że wszystkie testy przejdą pomyślnie i właściciel(e) projektu połączą Twoje zmiany z projektem🤞
Zaktualizuj swoją lokalną gałąź roboczą o wszystkie nowe commity z odpowiadającej jej zdalnej gałęzi na GitHubie:
git pull
Jak przyczynić się do rozwoju open source
Najpierw znajdź repozytorium (lub repo) na GitHubie, które Cię interesuje i do którego chciałbyś wnieść zmiany. Będziesz chciał skopiować jego zawartość na swój komputer.
✅ Dobrym sposobem na znalezienie repozytoriów przyjaznych dla początkujących jest wyszukiwanie według tagu 'good-first-issue'.
Istnieje kilka sposobów kopiowania kodu. Jednym z nich jest "klonowanie" zawartości repozytorium za pomocą HTTPS, SSH lub GitHub CLI (Command Line Interface).
Otwórz terminal i sklonuj repozytorium w następujący sposób:
git clone https://github.com/ProjectURL
Aby pracować nad projektem, przejdź do odpowiedniego folderu:
cd ProjectURL
Możesz również otworzyć cały projekt za pomocą Codespaces, wbudowanego edytora kodu / środowiska programistycznego w chmurze od GitHuba, lub GitHub Desktop.
Na koniec możesz pobrać kod w formie spakowanego folderu.
Kilka ciekawych rzeczy o GitHubie
Możesz oznaczyć gwiazdką, obserwować lub "forkować" dowolne publiczne repozytorium na GitHubie. Swoje oznaczone gwiazdką repozytoria znajdziesz w menu rozwijanym w prawym górnym rogu. To jak zakładki, ale dla kodu.
Projekty mają tracker problemów, zazwyczaj na GitHubie w zakładce "Issues", chyba że wskazano inaczej, gdzie ludzie omawiają problemy związane z projektem. Zakładka Pull Requests to miejsce, gdzie ludzie omawiają i recenzują zmiany, które są w trakcie realizacji.
Projekty mogą również mieć dyskusje na forach, listach mailingowych lub kanałach czatu, takich jak Slack, Discord czy IRC.
✅ Rozejrzyj się po swoim nowym repozytorium na GitHubie i spróbuj kilku rzeczy, takich jak edytowanie ustawień, dodawanie informacji do repozytorium i tworzenie projektu (np. tablicy Kanban). Możesz zrobić naprawdę wiele!
🚀 Wyzwanie
Połącz siły z przyjacielem, aby pracować nad kodem nawzajem. Stwórzcie wspólnie projekt, forkowanie kodu, tworzenie gałęzi i łączenie zmian.
Quiz po wykładzie
Przegląd i samodzielna nauka
Przeczytaj więcej o przyczynianiu się do rozwoju oprogramowania open source.
Ćwicz, ćwicz, ćwicz. GitHub oferuje świetne ścieżki edukacyjne dostępne na skills.github.com:
Znajdziesz tam również bardziej zaawansowane kursy.
Zadanie
Ukończ kurs Pierwszy tydzień na GitHubie
Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby tłumaczenie było precyzyjne, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego języku źródłowym powinien być uznawany za autorytatywne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.