Notatki z Git’a – podstawowa konfiguracja Git i połączenie SSH do GitHub

Przechodząc przez poniższą instrukcję bez problemu skonfigurujesz swoje repozytorium Git i dołączysz do funkcjonującego projektu.

Podstawowa konfiguracja Git

Każdy commit i zmiana są oznaczane automatycznie danymi osoby odpowiedzialnej za nie.

$ git config --global user.name "imię nazwisko"
$ git config --global user.email "adres@email.com"

Przełącznik --global nadaje wartość parametrów użytkownika nameemail dla wszystkich repozytoriów Git użytkownika w systemie operacyjnym.

Pozostałymi lokalizacjami (poza --global) są jeszcze:

--local -> konfiguracja dla pojedynczego repozytorium (wykorzystywane domyślnie, jeśli w komendzie nie zdefiniujesz konkretnej lokalizacji)
--system -> konfiguracja dla całego systemu operacyjnego

Żeby usunąć którąś z konfiguracji wystarczy wykonać polecenie z przełącznikiem –unset. Poniższy kod usuwa lokalną konfigurację maila.

$ git config --unset user.email

Konfiguracja SSH Git do GitHub

Poniższy opis dotyczy konkretnie GitHub’a, ale tak samo zadziała to z GitLab’em i Bitbucket.

Protokół SSH wymaga stworzenia pary kluczy (publicznego i prywatnego).

Wygeneruj parę kluczy:

 $ ssh-keygen -t ed25519

Opcja -t pozwala wybrać algorytm, zgodnie z którym klucze będą stworzone. Popularnie wykorzystywanym nadal jest rsa. Powyżej skorzystałem z ed25519. Po więcej szczegółów zajrzyj na stronę z dokumentacją SSH.

Powyżej zdefiniowałem nazwę pliku, id_github_ed, pod jakim chcę utworzyć parę kluczy. Możesz zostawić pole puste i klucze utworzą się z domyślną nazwą.

Zaloguj się na swoje konto GitHub i znajdź zakładkę z SSH and GPG keys.

Następnie oczywiście New SSH key.

Nazwij ten klucz jak chcesz i wklej zawartość pliku .pub w miejsce Klucza.

Teraz utwórz plik config w katalogu ~/.ssh, jeśli jeszcze nie istnieje i zapisz w nim poniższe 3 linie:

Host github.com
IdentityFile ~/.ssh/id_github_ed
IdentitiesOnly yes

Zauważ, że (w kontekście tego wpisu) pierwsza linia definiuje adres serwisu z Twoim repozytorium (równie dobrze może to być gitlab.com).
Druga linia, IdentityFile, wskazuje konkretny klucz prywatny do użycia z Hostem.
Trzecia linia, IdentitiesOnly, użyte wraz z IdentityFile wskazuje klientowi ssh, że w połączeniu z tym konkretnym hostem należy użyć tylko tego konkretnego klucza i pominąć wszystkie pozostałe w katalogu ~/.ssh.

Jak podłączyć się do zdalnego repozytorium Git’a?

Klonowanie repozytorium:

Jest dobrze. Masz już klucze i możesz bez problemu pobrać repozytorium z GitHub’a. Wystarczy bardzo prosta komenda, żeby je sklonować:

$ git clone git@github.com:<nazwa_projektu>/<nazwa_repo>.git .

Jeśli klucze SSH ogarnęłaś/ogarnąłeś prawidłowo, to klonowanie przebiegnie pomyślnie i zobaczysz mniej więcej podobne komunikaty jak poniżej.

Jeśli coś jest nie tak z SSH, to polecenie git clone zostanie odrzucone.

Ważna kropka na końcu polecenia git clone:

  • Ta kropka oznacza, że klonowane repozytorium zostanie sklonowane bezpośrednio do katalogu, w którym obecnie się znajdujesz.
  • Możesz ją pominąć i klonowane repozytorium utworzy nowy katalog o nazwie takiej samej, jak nazwa repozytorium i tam właśnie umieści całe repozytorium.
  • Możesz wpisać jakiekolwiek słowo, bądź ciąg znaków i Git utworzy właśnie taki katalog i w nim umieści klonowane repozytorium.

Powyższa komenda sklonuje całe repozytorium z pełną historią commitów. Nie musisz klonować 100% historii repozytorium, jeśli… tego nie potrzebujesz. Z pomocą przychodzi parametr --depth.

$ git clone --depth 5 git@github.com:Marek603/nauka-gita.git .

Jak widzisz poniżej, pomimo chęci wyświetlenia 50 ostatnich commitów (parametr -n50), Git wyświetlił jedynie istniejące lokalnie 5 commitów.

Podłączenie zdalnego repozytorium:

Żeby się podłączyć do innego/zdalnego repozytorium musisz najpierw lokalnie zainicjować repozytorium Git lokalnie.

git init

A później powiązać lokalne repozytorium ze zdalnym:

git remote add origin git@github.com:<nazwa_projektu>/<nazwa_repo>.git

W powyższym poleceniu słowo origin to lokalna nazwa/określenie/wskaźnik tego konkretnego repozytorium zdalnego. Możesz mieć wiele połączeń do repozytoriów zdalnych, ale każde musi mieć inną nazwę.

Poniższy screen przedstawia udane powiązanie.
Polecenie git remote wyświetli wszystkie zdalne repozytoria powiązane z bieżącym repo lokalnym.

Kolejny screen przedstawia fatal’ny błąd, jeśli spróbujesz podłączyć zdalne repozytorium do katalogu, w którym nie istnieje lokalne repo Git’a.

Poniżej ostatni ważny błąd, jeśli znów coś pójdzie nie tak z prawidłową konfiguracją SSH.

Kończąc:

Zdalne repozytorium powinno być już bez problemu dostępne z Twojego komputera 😉.

Koniecznie zajrzyj do wcześniejszych wpisów o pracy z Git’em:


Nie przegap kolejnych wpisów -> śledź mnie:


Opublikowano

w

przez

Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *