Niniejsza praca jest licencjonowana zgodnie z Creative Commons Attribution-ShareAlike License 4.0 International. Aby zobaczyć kopię niniejszej licencji, odwiedź creativecommons.org/licenses/by-sa/4.0/
Znacząca część niniejszego tutoriala zaczerpnięta i zmodyfikowana została na powyższej licencji ze świetnego poradnika Django Girls: tutorial.djangogirls.org/pl/
Git i GitHub
Git to system kontroli wersji, czyli program, który w przyrostowy sposób zbiera informacje (w repozytorium) na temat zmian wprowadzonych w projekcie, a także umożliwia przywrócenie poprzednich wersji programu. Narzędzie to (choć niepozorne) jest potężne w funkcjonalności - skupimy się jednak na podstawach, niezbędnych do kontrybuowania w open-source'owych projektach takich jak ten.
GitHub to serwis internetowy, który z użyciem gita pozwala na bardzo wygodną pracę przy zespołowych projektach programistycznych.
Istnieją alternatywy dla gita i GitHuba, jednak są to zdecydowanie najpopularniejsze narzędzia i dlatego warto je znać.
Instalacja gita
Windows
Git dostępny jest do pobrania na oficjalnej stronie internetowej projektu.
Domyślna konfiguracja jest akceptowalna, jednak warto zaznaczyć opcje:
Run Git and associated Unix tools from the Windows command-line
(krokAdjusting your PATH environment
)Checkout Windows-style, commit Unix-style line endings
(krokConfiguring the line ending conversions
)
OS X
Git dostępny jest do pobrania na oficjalnej stronie internetowej projektu.
Linux
W wielu dystrubucjach git zainstalowany jest od razu. Jeśli jednak Ty go nie masz zainstaluj go za pośrednictwem menadżera pakietów. W zależności od dystrubucji:
sudo apt-get install git
sudo yum install git
sudo zypper install git
Podstawowe komendy gita
Poniżej znajduje się tabela z podstawowymi komendami gita. Każda z nich posiada parametry, które modyfikują działanie komendy. Jeżeli masz trochę czasu - koniecznie zapoznaj się z oficjalną dokumentacją.
Komenda | Opis komendy | Link do oficjalnej dokumentacji |
---|---|---|
git init | Tworzy (inicjalizuje) repozytorium. | git-scm.com/docs/git-init |
git config | Konfiguracja gita. | https://git-scm.com/docs/git-config |
git add | Dodaje wprowadzone zmiany do "poczekalni" - tymczasowej przestrzeni. | git-scm.com/docs/git-add |
git commit | Zatwierdza wprowadzone do "poczekalni" zmiany i tworzy commita, zawierającego owe zmiany wraz z opisem, o który zostaniesz poproszony. Warto zadbać o to, aby opisy commitów były maksymalnie informatywne. | git-scm.com/docs/git-commit |
git status | Wyświetla podstawowe informacje o stanie repozytorium, np. które pliki zostały dodane lub zmienione. Warto używać tej komendy w każdym momencie,w którym nie jesteśmy pewni co dokładnie dzieje się w naszym repozytorium. | git-scm.com/docs/git-status |
git clone | Klonuje repozytorium z jednej lokalizacji do drugiej, np. z serwera GitHub na nasz lokalny komputer. | git-scm.com/docs/git-clone |
git remote | Zarządza śledzonymi repozytoriami. Dzięki tej komendzie (z dodatkowymi argumentami) można m. in. ustawić repozytorium na GitHubie jako to "nadrzędne"/"główne" (upstream). | git-scm.com/docs/git-remote |
git pull | Pobiera zmiany z innego repozytorium (np. znajdującego się na GitHubie). | git-scm.com/docs/git-pull |
git push | Wysyła ("wypycha") lokalne zmiany do innego repozytorium (np. znajdującego się na GitHubie). | git-scm.com/docs/git-push |
git branch | Zarządza gałęziami (_branchami), _np. umożwia stworzenie nowej gałęzi (czyli wariantu aplikacji, w którym coś zmieniamy/dodajemy). | git-scm.com/docs/git-branch |
git merge | Łączy gałęzie/wersje projektu. | git-scm.com/docs/git-merge |
git checkout | Zmienia gałąź/wersję projektu lub usuwa niezatwierdzone zmiany. | git-scm.com/docs/git-checkout |
Przykładowa sesja z gitem # TODO
GitHub
Nasz projekt, tak jak wiele innych znakomitych projektów, posiada swoje repozytorium na GitHubie. Rejestracja w serwisie jest prosta i szybka. Po zalogowaniu się możemy stworzyć własne repozytorium (co jest szalenie intuicyjne), bądź pobrać jakieś publicznie dostępne. Aby pobrać repozytorium musimy wejść na stronę projektu i klinąć przycisk Clone or download
. Będziemy mogli wówczas skopiować link, który wpisany w terminalu z prefiksem git clone
utworzy na naszym komputerze lokalną kopię tego repozytorium. Inną możliwością jest zrobienie forka, o których można poczytać w dokumentacji GitHuba.
Student Developer Pack
GitHub to serwis komercyjny, jednakże projekty open-source'owe są zwolnione z opłat. Jeżeli jednak jesteś studentem, możesz wypełnić formularz na odpowiedniej stronie i otrzymać Student Developer Pack, czyli darmowy zestaw narzędzi programistycznych, za które normalnie przyszłoby Ci słono zapłacić. Poza dostępem do płatnych funkcjonalności GitHuba (m. in. możliwości tworzenia prywatnych/niepublicznych repozytoriów) otrzymasz możliwość wypróbowania za darmo wielu serwisów - m. in. AWS, DigitalOcean, czy Travis CI.