Git i Github: Przewodnik dla początkujących dla kompletnych początkujących
Opublikowany: 2017-08-15Wbrew temu, co mówią nam telewizja i filmy, życie programisty nie obejmuje siedzenia w ciemnym pokoju z klawiaturą oświetloną jedynie blaskiem monitora, odpychająca myśl o interakcji z drugim człowiekiem. Nie, życie programisty jest towarzyskie i oparte na współpracy – czasami aż do frustracji. Dlatego mamy git i Github.
Git to oprogramowanie do kontroli wersji, które sprawia, że współpraca z kolegami z zespołu jest bardzo prosta… po przejściu przez początkową krzywą uczenia się. To może być onieśmielające, ale właśnie dlatego tu jestem!
Co to jest Git?
Cóż, nie chodzi tylko o sposób, w jaki my, południowcy, odpędzamy szkodniki z naszych ganków, powiem ci to.
Jak powiedziałem powyżej, Git to oprogramowanie do kontroli wersji. Został stworzony przez Linusa Torvaldsa, faceta, który wynalazł Linuksa. Nie musisz używać Linuksa, aby korzystać z git - możesz go również używać na Windowsie i Macu.
Git pozwala łatwo śledzić każdą wersję, którą Ty i Twój zespół wprowadzacie podczas tworzenia oprogramowania. Wszyscy dzielicie jedno repozytorium kodu, nad którym pracuje się niezależnie, a następnie ponownie scalacie. Nie musisz też być cały czas połączony, ponieważ projekt jest zapisywany zarówno lokalnie na każdej maszynie, jak i zdalnie (prawdopodobnie na Github).
Git jest wyjątkowy (i prawie obowiązkowy), ponieważ możesz wrócić do dowolnej poprzedniej wersji kodu, rozgałęziać się i rozwijać określoną funkcję bez wpływu na cokolwiek lub kogokolwiek innego, a także zachować bezpieczeństwo przed uszkodzeniem danych ze względu na jego rozproszony charakter.
Zapewnia również łatwe w implementacji szyfrowanie i kompatybilność z różnymi systemami operacyjnymi, a także asynchroniczne, nieliniowe przepływy pracy, dzięki czemu bez względu na to, gdzie jesteś, możesz pracować nad pewnym aspektem swojego projektu.
Zasadniczo, jeśli nie używasz git, kodujesz z jedną ręką związaną za plecami.
Wymagane słownictwo
Kiedy po raz pierwszy zaczynasz używać git, może to być onieśmielające. Polecenia i koncepcje mogą wydawać się całkowicie obce, jeśli nigdy wcześniej nie korzystałeś z żadnej formy kontroli wersji. Zbierzesz je jednak bardzo szybko.
Magazyn:
Często określany jako repo . Repozytorium to zbiór plików i folderów, które śledzisz za pomocą git. Repozytorium składa się z całej historii zmian Twojego zespołu w projekcie. To wielkie pudło, do którego ty i twój zespół wrzucacie swój kod.
Github:
Najpopularniejsze rozwiązanie do zdalnego przechowywania repozytoriów git. Umożliwia także ustawianie uprawnień dostępu do projektów, śledzenie i przesyłanie błędów, akceptowanie próśb o nowe funkcje, subskrybowanie powiadomień o repozytorium i korzystanie z interfejsu graficznego zamiast korzystania z wiersza poleceń. Repo domyślnie są publiczne, ale płatne konta mogą mieć prywatne.
Popełniać:
Pomyśl o tym jako o uratowaniu swojej pracy. Kiedy zobowiązujesz się do repozytorium, to tak, jakbyś zbierał pliki w postaci, w jakiej istnieją w danym momencie i umieszczał je w kapsule czasu. Zatwierdzenie będzie istniało tylko na twoim lokalnym komputerze, dopóki nie zostanie przekazane do zdalnego repozytorium.
Naciskać:
Pchanie chleba to masło popełnienia. Zobowiązanie powoduje przeniesienie plików do kapsuły czasu, a pchanie jest tym, co uruchamia kapsułę w kosmos. Pushing to zasadniczo synchronizacja Twoich zatwierdzeń z chmurą (ponownie, prawdopodobnie Github). Możesz też przesłać wiele zatwierdzeń jednocześnie. Możesz pracować offline, wykonywać dużo pracy, a potem przesyłać to wszystko na Github, gdy wrócisz do cywilizacji z tym słodkim, słodkim Wi-Fi.
Oddział:
Możesz myśleć o swoim repozytorium git jak o drzewie. Pień drzewa, oprogramowanie, które zostaje uruchomione, nazywa się Gałąź Główną. To ten, który jest transmitowany na żywo. Gałęzie tego drzewa są, no cóż, nazywane gałęziami. Są to oddzielne instancje kodu, które odchodzą od głównej bazy kodu. Możesz rozgałęzić się na pojedynczą funkcję lub eksperymentalną łatkę. Rozgałęziając, możesz zachować integralność oprogramowania i mieć sposób na cofnięcie się, jeśli zrobisz coś całkowicie szalonego. Pozwala także na pracę nad zadaniem bez wchodzenia na drogę zespołu (lub ich na twoją).
Łączyć:
Kiedy gałąź jest dopracowana, wolna od błędów (przynajmniej na tyle, na ile możesz to stwierdzić) i gotowa do stania się częścią podstawowej bazy kodu, zostanie włączona do gałęzi master. Łączenie jest właśnie tym, jak brzmi: integracją dwóch gałęzi razem. Każdy nowy lub zaktualizowany kod stanie się oficjalną częścią bazy kodu. Każdy, kto rozgałęzia się od momentu połączenia, będzie miał również ten kod w swoim odgałęzieniu.
Klon:
Klonowanie repozytorium jest dokładnie tym, na co wygląda. Zajmuje całe repozytorium online i tworzy jego dokładną kopię na komputerze lokalnym. Będziesz musiał to zrobić z wielu powodów, z których nie najmniej ważnym jest rozpoczęcie pracy w trakcie projektu z nowym zespołem, zamiana stacji roboczych lub rozpoczęcie od nowa z uszkodzonego repozytorium.
Widelec:
Rozwidlenie jest bardzo podobne do klonowania, tylko zamiast tworzenia duplikatu istniejącego repozytorium na lokalnym komputerze, otrzymujesz całkowicie nowe repozytorium tego kodu pod własną nazwą. Ta funkcja jest używana głównie do przenoszenia istniejącej bazy kodu i podążania za nią w zupełnie nowym kierunku, co zdarza się często w oprogramowaniu open source; programiści widzą podstawowy pomysł, który działa, ale chcą iść z nim w inny sposób. Rozwidlenie pozwala na to. Możesz także grać w repozytorium innego programisty, tak jak w swojej osobistej piaskownicy. A jeśli zrobisz coś, co Twoim zdaniem może się spodobać, możesz złożyć żądanie ściągnięcia, aby zostało to scalone.
Prośba o pociągnięcie:
Żądanie ściągnięcia ma miejsce wtedy, gdy przesyłasz żądanie, aby wprowadzone zmiany (w gałęzi lub rozwidleniu) zostały ściągnięte (lub scalone) do gałęzi głównej repozytorium. To jest wielki czas. Tutaj dzieje się magia. Jeśli żądanie ściągnięcia zostanie zatwierdzone, oficjalnie wniesiesz wkład do oprogramowania, a Github na zawsze pokaże dokładnie to, co zrobiłeś. Jeśli jednak żądanie ściągnięcia zostanie z jakiegoś powodu odrzucone, osoba odrzucająca będzie mogła przekazać opinię, dlaczego żądanie zostało odrzucone i co możesz zrobić, aby zostało zaakceptowane.
Pierwsze kroki i wymagane polecenia
Nie było tak źle, prawda?
Dobrze. Teraz, gdy masz już jasne pojęcie, czym jest git, czas się zagłębić i ubrudzić sobie ręce.
Powinienem jednak skorzystać z okazji, aby zauważyć, że zakładam, że używasz wiersza poleceń do interakcji z git. Jasne, że istnieją graficzne klienty git (a Github pozwala nawet na zrobienie prawie wszystkiego za pośrednictwem swojego interfejsu sieciowego), ale na potrzeby tego posta nie będziemy się nimi zajmować. Zrobisz kilka rzeczy poza terminalem, ale wiersz poleceń będzie twoim nowym BFF. Więc z tym też się wybieramy.
Jak zainstalować Git
Git (prawdopodobnie) nie został zainstalowany na twoim komputerze, więc musimy go tam dostać. Na szczęście instalacja git jest bardzo łatwa, niezależnie od tego, czy korzystasz z systemu Linux, Mac czy Windows.
W przypadku Linuksa otwórz terminal i wpisz sudo apt-get install git-all (jeśli jesteś w Ubuntu. Jeśli nie, istnieje lista wszystkich poleceń instalacji pakietów Linuksa dla dowolnej innej dystrybucji, z której korzystasz).
W systemie Windows to równie proste. Pobierasz instalator i uruchamiasz go.
Na Macu wystarczy otworzyć terminal i wpisać git . Jeśli git nie jest zainstalowany, zobaczysz to:

Gdy klikniesz Zainstaluj, możesz już iść.
Widzieć? Super proste!
Korzystanie z Gita
Tu zaczyna się zabawa. Teraz, gdy masz już zainstalowany git, czas na… git-r-done! Ha! Ale naprawdę nadszedł czas, aby zagłębić się i nauczyć się korzystać z tego niesamowitego, małego kawałka magii wiersza poleceń. A czy jest lepsze miejsce na start niż Github?
Więc idź dalej i zarejestruj swoje nowe konto Github (lub zaloguj się, jeśli już je masz, a będę z tobą za sekundę).
Github jest bezpłatny dla repozytoriów publicznych i możesz mieć prywatne za opłatą. (FYI: możesz uzyskać bezpłatne prywatne repozytoria w Bitbucket, który jest mniej znanym, ale niesamowitym miejscem). W większości bezpłatna opcja na Github jest w porządku dla większości ludzi (i działa jak żywe CV!), ale niektórzy klienci i pracodawcy będą wymagać prywatności i bezpieczeństwa, więc dobrze jest mieć opcje.

Następnie możesz założyć swoje pierwsze repozytorium! Po zweryfikowaniu adresu e-mail i wszystkich tych zabawnych rzeczy.


Najpierw będziesz chciał skonfigurować repozytorium w Github. Możesz to zrobić na swoim komputerze, a następnie przesłać go również, ale prościej jest najpierw zrobić to w Internecie.

Zauważ, że nie martwię się o licencję ani .gitignore w tym repozytorium. Ponieważ nie jest to prawdziwe oprogramowanie, nie muszę się o to martwić, ale w przypadkach produkcyjnych .gitignore pozwala oczywiście zignorować pliki w katalogu repozytorium. Tutaj możesz przeczytać, jakiej licencji potrzebuje Twoje oprogramowanie.

Ja jednak inicjuję repozytorium plikiem README, którego należy używać do przechowywania podstawowej dokumentacji projektu. Zwykle używam ich jako narzędzia do śledzenia głównych zmian, list rzeczy do zrobienia i różnego rodzaju notatek podczas pracy. Ale to dotyczy osobistych projektów. Różni liderzy zespołów będą mieli różne oczekiwania.
Teraz, gdy repozytorium istnieje na Github, nadszedł czas, aby przenieść je na komputer lokalny poprzez klonowanie. Po prawej stronie repozytorium, tuż nad listą plików, zobaczysz zielony przycisk z napisem „Klonuj lub Pobierz”. Kliknij go, a zobaczysz to:

Ponieważ klonujemy, możemy zignorować wszystko z wyjątkiem części dotyczącej klonowania za pomocą HTTPS. Nie będziesz musiał niczego konfigurować. Musisz tylko wpisać swoją nazwę użytkownika i hasło, kiedy naciskasz.
Najpierw jednak musisz skonfigurować miejsce, w którym chcesz, aby twoje repozytorium znajdowało się na twoim lokalnym komputerze. Otwórz terminal. (Użytkownicy systemu Windows, wyszukaj i otwórz program o nazwie Windows Powershell. Sugeruję również kliknięcie prawym przyciskiem myszy i wybranie "Uruchom jako administrator".)
Pierwszym poleceniem, którego musisz się nauczyć, jest ls . Spowoduje to wyświetlenie wszystkiego w bieżącym katalogu. Aby uprościć sprawę, po prostu ustawmy nasz folder dev w katalogu domowym komputera. Możesz użyć mkdir dev, aby utworzyć katalog o nazwie dev . Całkiem proste, prawda? Jeśli ponownie LS, pojawi się nowy folder na liście.

Następnie chcesz przejść do nowego katalogu za pomocą cd dev , które jest poleceniem zmiany katalogu . Widzisz, wiersz poleceń wcale nie jest przerażający! Jeśli chcesz wrócić do poprzedniego katalogu, wystarczy użyć cd .. .
Gdy jesteś wewnątrz nowego folderu dev, nadszedł czas, aby git tej partii zaczęło. He, he, he.
Zacznij od skopiowania adresu URL, który pojawia się po kliknięciu zielonego przycisku „Klonuj lub Pobierz” na Github. Będzie to wyglądać mniej więcej tak: https://github.com/bjk1337/myfirstrepo.git
Polecenia klonowania repozytorium Git z Github
- klon git https://github.com/bjk1337/myfirstrepo.git
- ls
- cd myfirstrepo – lub jakkolwiek nazwałeś swoje repozytorium
- ls
Następnie twój terminal powinien wyglądać mniej więcej tak, pokazując plik README skonfigurowany na Github. Gratulacje! Właśnie użyłeś Gita po raz pierwszy i możesz zacząć programować.

Niedźwiadek Gitty Piaszczysty
Teraz, gdy masz repozytorium na swoim komputerze, musisz nauczyć się z niego korzystać. Przewińmy więc trochę do przodu i powiedzmy, że pracowałeś już trochę nad fajnym projektem i masz kilka plików w katalogu. Nadszedł czas, aby zatwierdzić i wepchnąć je na Github.
Dodawanie i zatwierdzanie do repozytorium Git
- git status - To polecenie pokaże, które pliki nie zostały dodane do listy dla następnego zatwierdzenia. W większości aplikacji terminalowych niedodane/dodane pliki będą odpowiednio czerwone/zielone.
- git dodaj . – dodając . na końcu polecenia mówisz git, aby uwzględnił wszystko w katalogu. Jeśli chcesz dodać pojedynczy plik, po prostu użyj jego nazwy. Takich jak functions.php .
- git status – W zależności od tego, czy użyłeś . lub nazwę pliku, cokolwiek dodałeś, powinno być teraz zielone.
- git commit -m „dodaj trzy puste pliki” – Kiedy zatwierdzasz te pliki, powinieneś również zostawić krótką wiadomość, aby Twoi koledzy z drużyny (lub przyszłe ja) dokładnie wiedzieli, co było w tym zatwierdzeniu. Standardowe konwencje git powiedzieć, że należy być zwięzłe i konkretne jak to możliwe, i rozpocząć wiadomość używając czasu teraźniejszego czasownika.
Twój terminal będzie teraz zawierał dużo tekstu i powinien wyglądać tak. Ale teraz wiesz, co to wszystko znaczy!

Wysyłanie do zdalnego repozytorium Git, takiego jak Github
Wypychanie do repozytorium jest jeszcze łatwiejsze.
- git status – Zawsze powinieneś sprawdzić, jak wszystko wygląda i upewnić się, że jesteś na właściwym branchu.
- git push
- Wprowadź swoją nazwę użytkownika i hasło do Github – pamiętaj, że pole hasła pozostanie puste, nawet podczas pisania. W porządku. Po prostu wpisz to i naciśnij Enter. Jeśli korzystałeś z SSH, pominiesz ten krok.

Możesz przejść do swojego konta Github i sprawdzić repozytorium, a twoje pliki będą tam, przesyłać wiadomości i wszystko!

Rozgałęzianie i łączenie
Ostatnie dwa polecenia, które musisz znać, dotyczą rozgałęziania i łączenia. Jak powiedziałem powyżej, praca nad gałęzią zapewnia bezpieczeństwo głównej bazy kodu, a gdy wszystkie zmiany są eleganckie, możesz je z powrotem scalić.
Mogą być trochę podstępni, więc może wystarczyć trochę szturchania, aby ładnie grali.
- git checkout -b „branch1” – To polecenie zarówno utworzy nową gałąź, którą zatytułujesz, jak i zamieni cię na nią jako gałąź roboczą. Łączy zarówno polecenia git checkout, jak i git branch w jedną poręczną linię kodu.
- touch awesome.html – to jest tylko polecenie wypełniające, aby utworzyć nowy plik html, który ponownie scalę z wzorcem .
- I tak jak poprzednio, będziesz git status, git add awesome.html, git commit -m „create awesome.html”
- git status ponownie pozwoli Ci zobaczyć, że wszystko jest tak, jak powinno być.

Jeśli spróbujesz wypchnąć go przed scaleniem, otrzymasz komunikat, że musisz ustawić źródło repozytorium. Origin to dziwna konwencja nazewnictwa dla tego, co komputer uważa za zdalne repozytorium. Więc po prostu mówisz mu, że tak, jest w porządku, aby przenieść tę gałąź na Github tak, jak zrobił to master. Oto dobry wątek na temat pochodzenia git ze Stack Overflow.
Pomijając to, powie Ci, że trafił do gałęzi1 –> gałęzi1.

Możesz przełączyć się z powrotem do gałęzi master za pomocą git checkout master (tym razem nie ma checkout -b, ponieważ używasz tego tylko podczas tworzenia nowej gałęzi, a nie zamiany. Pomieszałem moje polecenia na poniższym zrzucie ekranu i wypróbowałem git branch master Nie udało się, bo mistrz już istniał.
- git status – Jak zawsze.
- git merge branch1 – Ponieważ wszystko w tej gałęzi jest w porządku, możemy iść dalej i scalić.
- Jeśli ponownie otrzymamy status git , zobaczymy, że wyprzedzamy origin/master o 1 zatwierdzenie. Oznacza to, że nie wprowadziliśmy wszystkich zmian, które wprowadziliśmy na Github.
- git push, aby zsynchronizować wszystko!

Sprawdź swoje konto Github - zobaczysz, że wszystko, co zrobiłeś, jest tam odzwierciedlone. Możesz zobaczyć różne komunikaty o zatwierdzeniu, liczbę gałęzi i zatwierdzeń, które zrobiliśmy, a także wszystkich współtwórców repozytorium i to, co zrobili.

I to wszystko! Gratulacje! Właśnie zakołysałeś swoim podstawowym przepływem pracy w Git. Możesz zrobić o wiele bardziej skomplikowane rzeczy niż to z gitem, ale jest to całkiem zbliżone do tego, czego prawdopodobnie będziesz używał na co dzień, kiedy dopiero… zaczynasz .
Och, jeszcze jedna rzecz!
Repozytorium Github, myfirstrepo , którego użyłem w tym artykule, jest nadal aktywne. Możesz to sprawdzić, bawić się, rozwidlać, sklonować lub cokolwiek, co myślisz, że przyzwyczaisz się do korzystania z git. Baw się dobrze! (I dzięki za wyrozumiałość ze mną i wszystkimi moimi git kalamburami.)
Obraz miniatury artykułu autorstwa MchlSkhrv / shutterstock.com
