Korzystanie z Gita w edytorze
Korzystanie z Gita w edytorze
Wstęp
Czym jest Git?
Git to system kontroli wersji kodu, powszechnie używany w projektach programistycznych. Pozwala on między innymi:
- mieć historię kodu, w której można cofać się wstecz;
- synchronizować kilka urządzeń i pracować zespołowo nad tymi samymi plikami, ograniczając konflikty;
- utrzymywać kilka wersji tego samego kodu, aby rozwijać go i eksperymentować bez psucia wersji działającej;
- łatwo tworzyć kopie zapasowe projektu.
Folder wersjonowany przez Gita nazywa się repozytorium (po angielsku _repository_ lub _repo_).
Czym jest forge?
Git jest programem działającym lokalnie (na twoim komputerze lub w edytorze Leek Wars), ale może też współpracować z platformą hostingową (tzw. forge). Jest to serwer, który przechowuje repozytoria Git.
Leek Wars obsługuje kilka takich platform; najprościej wybrać jedną z poniższych:
- GitHub, zamknięty serwis Microsoftu (USA). Hostuje również kod Leek Wars.
- GitLab.com, oficjalna instancja GitLaba (USA), wolnego oprogramowania, które można hostować samodzielnie.
- Bitbucket, zamknięty serwis Atlassian (USA).
- Codeberg, oficjalna instancja Forgejo, społecznościowego wolnego oprogramowania, które można hostować samodzielnie; prowadzona przez niemiecką organizację non-profit.
Można też korzystać z innych platform opartych na GitLab, Bitbucket, Forgejo, Gitea lub Gogs, na przykład framagit.org czy gitea.com.
Używanie Gita z istniejącą SI
Przede wszystkim SI musi znajdować się w folderze, a nie w katalogu głównym. Utwórz folder, kliknij go prawym przyciskiem myszy i wybierz „Zainicjuj repozytorium Git”. Będzie on zawierał wszystkie pliki, które mają trafić do Gita.
Na górze listy plików (menu po lewej) pojawi się zakładka Git z ikoną gałęzi. Przejdź do niej.
Tworzenie commitów
(commit, czyli „zatwierdzenie” zmian)
Na górze zakładki Git sprawdź na liście rozwijanej, czy wybrane jest właściwe repozytorium (jeśli masz ich kilka).
Gdy pliki w repozytorium zostaną zmodyfikowane, zmiany pojawią się w zakładce Git. Na razie są one nieindeksowane: to coś w rodzaju szkicu, który nie został jeszcze wyryty w kamieniu historii.
Gdy chcesz zapisać zmiany w historii, kliknij przycisk ➕, aby je zindeksować. Podsumuj zmiany w kilku słowach w polu „Wiadomość commita” i zatwierdź.
Uwaga: aby dobrze widzieć wszystkie przyciski zakładki Git, może być konieczne poszerzenie jej w prawo przez przeciągnięcie jej prawej krawędzi!
Historia to lista commitów, a każdy commit to zestaw zmian z datą i wiadomością. Chodzi o to, by móc odnaleźć, z kiedy pochodzi dana zmiana, cofnąć się wstecz, grupować zmiany, aby uniknąć kodu działającego połowicznie...
Łączenie z platformą
Konfiguracja po stronie platformy
Załóż konto na platformie Git i utwórz na niej puste repozytorium. Znajdź adres swojego repozytorium, który powinien wyglądać mniej więcej tak: https://exemple.net/mon-pseudo/mon-depot.git. To adres strony głównej twojego repozytorium z dodanym na końcu .git.
Następnie trzeba zezwolić Leek Wars na dostęp do repozytorium. Sposób zależy od platformy.
- GitHub: najprościej zainstalować GitHub App Leek Wars bezpośrednio z edytora (zobacz poniżej). Alternatywnie możesz utworzyć token: kliknij swój profil, Settings, Developer Settings (na samym dole). Na otwartej stronie wybierz Personal access tokens, Tokens (classic). Wybierz datę wygaśnięcia (np. 90 dni) i nadaj tylko uprawnienia niezbędne do pracy z repozytorium.
- Forgejo: Ustawienia konta, Aplikacje, Nowy token dostępu. Zezwól na odczyt i zapis w „repository”.
Jeśli utworzyłeś token, zachowaj go starannie, aby go nie zgubić!
Konfiguracja po stronie Leek Wars
Na dole zakładki Git kliknij przycisk z chmurką „Ustawienia remote”.
To tutaj deklaruje się zdalne repozytorium (remote): podaj nazwę (np. origin), wklej URL repozytorium i kliknij przycisk „Dodaj”. Ten krok jest niezbędny, zanim będzie można cokolwiek wypchnąć.
Do uwierzytelnienia wybierz swoją platformę: GitHub, GitLab, Bitbucket lub Forgejo.
- GitHub: główna ścieżka to przycisk „Zainstaluj GitHub App”. Podczas instalacji wybierz repozytoria, do których chcesz dać dostęp; po powrocie do Leek Wars będziesz mógł wybrać jedno z nich bezpośrednio jako remote. Alternatywnie wklej Personal Access Token w pole „Token dostępu”.
- GitLab i Bitbucket: wklej token w pole „Token dostępu”. Jeśli korzystasz z własnej instancji zamiast gitlab.com lub bitbucket.org, zaznacz „Instancja własna” i podaj adres platformy (to pole wyboru istnieje także dla GitHuba).
- Forgejo: dla tej platformy pole wyboru „Instancja własna” nie istnieje, pole adresu instancji jest zawsze widoczne (wstępnie wypełnione codeberg.org). W razie potrzeby podaj adres swojej instancji i wklej token w pole „Token dostępu”.
Wysyłanie commitów na serwer
Na razie historia commitów jest zapisana wyłącznie w Leek Wars. Aby wysłać ją na platformę, wykonuje się push przyciskiem ⬆ na samym dole zakładki Git.
Za każdym razem, gdy zechcesz wysłać nowe commity, zrób push.
Inne funkcje
Edytor i zakładka Git oferują również:
- Klonowanie repozytorium: menu Plik → „Sklonuj repozytorium git”, z podaniem URL repozytorium i folderu docelowego.
- Pobieranie (pull): przycisk „Pobierz (pull)” pobiera commity z remote, do wyboru ze strategią merge lub rebase („Strategia pull”).
- Gałęzie: selektor gałęzi pozwala je zmieniać, tworzyć („Nowa gałąź...”) i przeglądać gałęzie zdalne.
- Historia i diff: przycisk „Historia” wyświetla listę commitów, a kliknięcie zmodyfikowanego pliku pokazuje jego różnice.
- Rozwiązywanie konfliktów: w razie konfliktu podczas merge lub rebase edytor pozwala je rozwiązać, a następnie kontynuować.
- Cofnięcie ostatniego commita: zmiany z cofniętego commita pozostają w indeksie.
- Kompaktowanie repozytorium: zmniejsza miejsce zajmowane przez repozytorium (przydatne ze względu na limit).
- Wbudowany terminal Git: wyświetla dziennik poleceń Git wykonanych przez edytor.