Programowanie i tworzenie oprogramowania to dziedziny, które dynamicznie się rozwijają. Wraz z tym rośnie zapotrzebowanie na narzędzia do tych prac. Stworzyło to wysoce konkurencyjne środowisko, w którym różne platformy i narzędzia DevOps walczą o pozycję najpopularniejszego rozwiązania w swoim segmencie. Git należy do takich narzędzi. W czasach, gdy praca zdalna stała się normą, wiele zespołów decyduje się hostować własne repozytoria, w tym Git, na serwerach zdalnych. Jeśli znajdujesz się w podobnej sytuacji i chcesz skonfigurować własny serwer Git, jesteś we właściwym miejscu.
W tym artykule wyjaśnię, czym dokładnie jest Git, omówię jego zalety i wady, a następnie pokażę, jakie wymagania musisz spełnić, aby hostować własny serwer Git. Zaczynamy!
Co to jest Git?
Git to narzędzie DevOps, które pozwala deweloperom pracować nad projektami wydajnie i efektywnie. Główna funkcja Git to śledzenie zmian w kodzie źródłowym. Git jest darmowy i open-source oraz otrzymuje regularne aktualizacje. Czyni to Git jednym z najbardziej dostępnych i niezawodnych narzędzi DevOps na świecie. Każdy komputer z zainstalowanym Git działa jako pełne repozytorium z własną historią zmian plików. Po blisko 20 latach rozwoju i ponad 30 wersjach Git działa obecnie na wersji 2.40.0, a kolejne aktualizacje są planowane. Poznajmy teraz główne przypadki użycia Git, aby zrozumieć, dlaczego warto skonfigurować własny serwer Git.
Przypadki użycia Git
Zanim zaczniesz hostować własny lokalny serwer Git, zapoznajmy się z głównymi przypadkami użycia Git, aby zrozumieć, dlaczego będziemy uruchamiać serwer Git.
Klonowanie Repozytorium
Wielu deweloperów woli tworzyć repozytorium Git na serwerze, aby śledzić projekty i pliki, które ich interesują. Git pozwala za pomocą kilku podstawowych poleceń zduplikować istniejące repozytorium jądra Linux i stworzyć bardziej spójny i efektywny dziennik zmian zawierający tylko interesujące Cię pliki. Proces jest łatwy do wykonania i możesz nim zarządzać projekty małe i duże. Operacja ta znana jest jako "rozgałęzianie", bo zasadniczo tworzysz nową gałąź na podstawie istniejącego repozytorium.
Przepływ pracy Git
Git Workflow to kolejny ważny przypadek użycia, z którym spotkasz się po skonfigurowaniu własnego serwera Git. Możesz użyć lokalnego serwera Git, aby utworzyć dwie serie gałęzi za pomocą klonowania i designować jedną z nich jako reprezentującą Twój projekt, na przykład stronę internetową. Następnie możesz skonfigurować serwer Git z oddzielną gałęzią produkcyjną, w której rejestrowane są wszystkie zmiany dokonane przez każdego dewelopera i mogą być testowane przed wdrożeniem. Ten wielowarstwowy podход do developmentu i testowania nie tylko zwiększa Twoją produktywność, ale także sprawia, że śledzenie przebiegu pracy i zmian staje się niezwykle proste.
Łączenie
Pamiętasz o branżowaniu repozytorium i dzienniku zmian? Merging to, jak sama nazwa wskazuje, odwrotność tego procesu. W mergingu, który uważany jest za najtrudniejszą część pracy z Git, łączysz dane z jednej gałęzi z głównym repozytorium, z którego ta gałąź się wywodzi. Zwykle robi się to, aby stworzyć serwer Git z kompleksowym raportujemy projektu i historią zmian, zawierającym wszystkie modyfikacje z różnych obszarów w jednym przejrzystym repozytorium. O ile podczas projektu branżowanie zapobiega zamieszaniu, merging ma na celu odwrócić tę akcję i pokazać pełny obraz na koniec projektu podczas debugowania.
Hostowanie własnego serwera Git: zalety i wady
Każde narzędzie ma zestaw kluczowych zalet i wad, które musisz znać, zanim zaczniesz je używać. W tej sekcji omówię zalety i wady Git, ale tylko w kontekście samodzielnie hostowanego Git, o czym mowa jest w tym przewodniku.
Samodzielnie hostowany Git: zalety
Brak ingerencji trzecich stron
Gdy samodzielnie hostujesz Git, dostęp do Twoich plików będą mieć tylko Ty i osoby w Twoim zespole. Eliminuje to wszelkie niepożądane ingerencje trzecich stron i pozwala Ci pracować z pełnym spokojem ducha. Twoje dane są też bezpieczniejsze, a zasoby przeznaczone na bezpieczeństwo możesz przeznaczyć na coś innego.
Bezpieczeństwo
Jeśli chodzi o bezpieczeństwo, Git jest tak bezpieczny, jak to tylko możliwe dzięki dobrym praktykom i zastosowaniu dodatkowych narzędzi. Choć poziom bezpieczeństwa spada, gdy hostujesz Git samodzielnie zamiast korzystać z usługi zarządzanej, masz prawie nieograniczoną swobodę w konfiguracji bezpieczeństwa według swoich potrzeb.
Nieograniczone Repozytoria
Pamiętasz o klonowaniu i branżowaniu? Nie ma limitu na liczbę repozytoriów, które możesz stworzyć w Git. Czyni to Git idealnym narzędziem dla dużych projektów, gdzie każda gałąź developmentu potrzebuje własnego repozytorium. To też świetne rozwiązanie dla projektów z dużymi plikami, takimi jak zasoby 3D, czy pracy z Unity.
Samodzielnie hostowany Git: wady Wady
Duży nakład pracy na zarządzanie
Repozytoria Git mogą szybko wymknąć się spod kontroli. Jeśli zdecydujesz się samodzielnie skonfigurować serwer Git, zarządzanie gałęziami i metadanymi może szybko stać się kłopotliwe. Musisz być niezwykle dokładny lub zatrudnić doświadczonego dewelopera do tego zadania.
Stroma krzywa uczenia się
Hostowanie Git to jedno, ale opanowanie go i uruchamianie własnego lokalnego serwera Git to coś zupełnie innego. Git ma jedną z najtrudniejszych krzywych uczenia się spośród wszystkich narzędzi DevOps opartych na repozytoriach. Musisz poświęcić dużo czasu na naukę lub zlecić to komuś innemu.
Brak GUI i obsługa Windows
Chciałeś skonfigurować serwer Git na Windows? A może chciałeś uruchomić serwer Git z interfejsem graficznym? Niestety nie będzie możliwości. Jesteś ograniczony do systemów operacyjnych z jądrem Linux, a interfejsu graficznego do ułatwienia zadań po prostu nie ma. Chcesz zainstalować serwer Git i hostować go samodzielnie? Lepiej zacznij uczyć się podstaw kodowania.
Przestarzała Metoda
Pod każdym względem samodzielne hostowanie serwera Git wydaje się przestarzałe i wypierane przez bardziej wydajne metody pracy z Gitem. Doskonałym przykładem wydajniejszego podejścia byłoby uruchomienie GitLab, więc zanim zdecydujesz się na własny serwer Git, zapoznaj się z GitLab też!
Wymagania do instalacji serwera Git
Teraz szybko przejdziemy przez wymagania potrzebne do skonfigurowania serwera Git i hostowania go samodzielnie. Aby hostować Git, potrzebujesz tylko dwóch elementów: serwera i instancji Gita, plus podstawową wiedzę z kodowania do wykonania konfiguracji serwera Git.
Serwer Git
Co się tyczy serwera, możesz użyć innego komputera, dedykowanych serwerów od tradycyjnych dostawców, lub jeśli preferujesz bardziej praktyczne podejście, użyj wirtualny serwer prywatny w chmurze (wirtualnego serwera prywatnego). Dysponując VPS możesz bezpośrednio zarządzać serwerem i obsługiwać instancję Gita jednocześnie. Pamiętaj, że twój serwer musi mieć dystrybucję Linux aby móc zainstalować serwer Git. Cloudzy oferuje szeroki wybór Linux VPS usług z ponad 10 renomowanymi dystrybucjami Linux takimi jak Ubuntu, Debian, CentOS, Kali i OpenSUSE. Już od 4,95 zł miesięcznie możesz zdobyć niezawodny serwer Linux blisko swojej lokalizacji, aby zapewnić sobie doskonałą jakość połączenia i używać go do samodzielnego hostowania i uruchamiania serwera Git.
Postaw na ekonomiczny lub premium Linux VPS do hostowania strony internetowej lub zdalnego pulpitu, w najniższej dostępnej cenie. VPS Działa na Linux KVM dla większej wydajności i wykorzystuje wydajny sprzęt z pamięcią masową NVMe SSD dla większej szybkości.
Czytaj więcejInstancja Git
Proces konfiguracji serwera Git jest prosty i wykonamy go automatycznie w ramach instalacji. Jak już wspomnialiśmy, Git jest open-source i nie kosztuje nic. To sprawia, że Git jest preferowany przez wielu programistów zamiast innych programów opartych na repozytoriach. Skoro już mamy wymagania, przejdzmy od razu do naszego przewodnika krok po kroku instalacji serwera Git na serwerze Linux.
Instalacja serwera Git na Linux (Przewodnik krok po kroku)
Krok 1. Pobieranie i instalacja Gita
Oto pierwszy krok w procesie instalacji serwera Git. W terminalu wybranej dystrybucji Linux wpisz poniższą komendę, aby pobrać Gita.
Dystrybucje oparte na Ubuntu/Debian:
sudo apt install git
Dystrybucje oparte na Arch:
sudo pacman -S git
Dystrybucje oparte na RHEL:
sudo dnf install git
Ta komenda pobierze i zainstaluje Git na serwerze Linux. Czekaj aż proces się zakończy.
Krok 2. Rejestracja i konfiguracja serwera Git
Jeśli masz lokalny serwer na innym komputerze, uruchom go. Jeśli natomiast posiadasz VPS, użyj SSH lub RDP aby zdalnie połączyć się z serwerem Linux. Teraz skonfigurujemy serwer Git do pracy zdalnej. Zrobimy to tworząc konto Git za pomocą poniższej komendy.
ssh username@address
sudo useradd git
Następnie wpisz tę komendę, aby przełączyć się na nowo utworzone konto:
su git
Ten krok wykonujemy przede wszystkim dla bezpieczeństwa lokalnego serwera Git. Korzystając z tego konta, będziesz administratorem serwera. Możesz bezpiecznie organizować potencjalnych przyszłych użytkowników w grupy z predefiniowanymi ograniczeniami i poziomami dostępu.
Krok 3. Tworzenie katalogów SSH i Tworzenie repozytorium Git na serwerze
Kolejnym krokiem w procesie instalacji serwera Git jest stworzenie dedykowanego katalogu SSH do zapisania klucze publiczne i utworzenie repozytorium Git na serwerze z dodatkowymi warstwami bezpieczeństwa i zdefiniowanymi poziomami dostępu dla ciebie. Zacznij od wpisania poniższej komendy:
ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
Po ograniczeniu dostępu do tego polecenia, wpisz następną linię, aby upewnić się, że twoje klucze SSH są bezpiecznie przechowywane w authorized_keys folderze, gdzie tylko ty możesz do nich dostęp (uruchom to polecenie tylko jeśli NIE masz id_rsa.pub plik):
cd .ssh
ssh-keygen -t rsa
cat id_rsa.pub
Na koniec skopiuj publiczny klucz SSH, który utworzyłeś, aby skonfigurować nowe połączenie SSH ze wzmocnionym bezpieczeństwem na lokalnym serwerze Git:
cd .ssh
vi authorized_keys
Krok 4: Utwórz katalog główny
Na serwerze Linux musisz utworzyć nowy katalog do przechowywania wszystkich repozytoriów, które Git będzie używać w przyszłych projektach. Możesz dowiedzieć się więcej o zarządzaniu repozytoriami Git. Wpisz to polecenie:
mkdir directory_name
Krok 5: Dodaj swój projekt!
Udało ci się utworzyć serwer Git. Proces instalacji serwera Git zakończył się pomyślnie i pomyślnie skonfigurowałeś serwer Git. Pozostaje już tylko dodanie projektów za pomocą następującego polecenia:
cd parent_directory
mkdir new_project.git
Następnie wpisz to polecenie, aby dodać zdalne źródło na komputer lokalny:
git init --bare
git remote add origin name git@address:new_project.git
Na koniec wykonaj Git push, aby sprawdzić, czy wszystko działa prawidłowo:
touch testfile
git add testfile
git commit -m "test file"
git push name master
git clone git@address:new_project.git
Gratulacje, pomyślnie przechowujesz Git i utworzyłeś repozytorium Git na serwerze.
Często zadawane pytania
Czy mogę hostować Git bez serwera?
Nie. Niezależnie od charakteru twojego serwera, będziesz potrzebować sprzętu, aby pełnił rolę serwera. Możesz użyć GitHub jako serwera w chmurze do przechowywania repozytoriów lub użyć naszych VPS ofert lub skorzystać z innej usługi hostingowej trzeciej strony.
Czy istnieje sposób na instalację serwera Git z interfejsem graficznym?
Tak. Chociaż Git nie wspiera interfejsu graficznego, dostępna jest samodzielna wersja zwana "Git GUI" dla osób, które nie potrafią obejść się bez interfejsu graficznego.
Czy Git ma plan płatny?
Nie. Git był i zawsze będzie darmowym programem o otwartym kodzie źródłowym, zgodnie z decyzją jego twórców i wydawców. Możesz więc używać programu jako podstawy dla swojego oprogramowania, lub korzystać z niego bezpłatnie.
Dlaczego warto hostować własny serwer Git?
Jeśli planujesz mały projekt z ograniczoną ilością repozytoriów, samodzielny hosting jest znacznie bardziej prywatny i bezpieczny. To główny powód. Jednak wraz ze wzrostem projektów i liczby repozytoriów, samodzielny hosting zaczyna tracić na wydajności.