Jeśli chodzi o hosting Git, masz wiele dostępnych opcji. GitHub, Gitlab i Bitbucket to popularne rozwiązania, ale uruchomienie własnego serwera Git jest alternatywą wartą rozważenia.
Ustawienie serwera Git pozwala na tworzenie prywatnych repozytoriów bez ograniczeń wynikających z darmowych planów dostawców.
W tym przewodniku wyjaśnimy, jak skonfigurować goły serwer Git na Linuksie. Taka konfiguracja jest dobra, jeśli masz niewiele repozytoriów, a współpracownicy są obeznani z technologią. W przeciwnym razie należy rozważyć zainstalowanie własnej aplikacji git, takiej jak Gitea, Gogs lub Gitlab .
Serwer Git może być skonfigurowany na dowolnej zdalnej maszynie z systemem Linux lub nawet na lokalnym systemie.
Ustawianie serwera Git #
Pierwszym krokiem jest zainstalowanie Git na serwerze.
Jeśli używasz Debiana lub Ubuntu, odśwież lokalny indeks pakietów i zainstaluj git, wykonując następujące polecenia jako użytkownik sudo:
sudo apt update && sudo apt install git
Aby zainstalować pakiet git na serwerach CentOS, wpisz:
sudo yum install git
Następnie należy utworzyć nowego użytkownika, który będzie zarządzał repozytoriami Git:
sudo useradd -r -m -U -d /home/git -s /bin/bash git
Katalog domowy użytkownika ustawiamy na /home/git
. Wszystkie repozytoria będą przechowywane pod tym katalogiem. Nie ustawiliśmy hasła dla użytkownika „git”, logowanie będzie możliwe tylko za pomocą kluczy ssh.
Przełącz się na użytkownika „git” za pomocą polecenia su
:
sudo su - git
Uruchom następujące polecenia, aby utworzyć katalog SSH i ustawić odpowiednie uprawnienia :
mkdir -p ~/.ssh && chmod 0700 ~/.ssh
Utwórz plik o nazwie ~/.ssh/authorized_keys
, który będzie zawierał klucze SSH autoryzowanych użytkowników:
touch ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys
To wszystko. Konfiguracja serwera została zakończona. Teraz możesz utworzyć swoje pierwsze repozytorium Git.
Wykonaj następujące polecenie, aby zainicjować nowe puste repozytorium:
git init --bare ~/projectname.git
Możesz nazwać katalog jak chcesz. Ważną rzeczą jest utworzenie repozytorium pod katalogiem domowym użytkownika „git”.
Initialized empty Git repository in /home/git/projectname.git/
Konfigurowanie lokalnego repozytorium Git #
Aby móc przepchnąć lokalne zmiany git na serwer Git, musisz dodać klucz publiczny SSH użytkownika lokalnego do pliku zdalnego użytkownika „git” authorized_keys
.
Jeśli masz już utworzoną parę kluczy SSH w swoim lokalnym systemie, możesz wyświetlić klucz publiczny wpisując:
cat ~/.ssh/id_rsa.pub
Wyjście powinno wyglądać jak poniżej:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== [email protected]
Jeśli otrzymasz komunikat o błędzie o treści No such file or directory
, oznacza to, że nie masz wygenerowanej pary kluczy SSH na swoim lokalnym komputerze.
Aby wygenerować nową parę kluczy SSH, użyj następującego polecenia:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Kopiuj dane wyjściowe z polecenia cat
powyżej i wróć do konsoli serwera Git.
Na serwerze otwórz edytor tekstu i wklej klucz publiczny, który skopiowałeś z lokalnego komputera do pliku ~/.ssh/authorized_keys
:
sudo nano /home/git/.ssh/authorized_keys
Cały tekst klucza publicznego powinien znajdować się w jednej linii.
Zakładamy, że pakiet Git jest już zainstalowany na twoim lokalnym komputerze. Jeśli nie, zainstaluj go w taki sam sposób, jak opisano w poprzednich sekcjach.
Jeśli masz już istniejący projekt, przejdź do katalogu projektu. Jeśli zaczynasz od zera, utwórz katalog projektu i przejdź do niego:
cd /path/to/local/project
Zainicjalizuj repozytorium git:
git init .
Ostatnim krokiem jest dodanie git remote do twojego lokalnego repozytorium:
git remote add origin git@git_server_ip:projectname.git
Nie zapomnij zastąpić git_server_ip
nazwą hosta lub adresem IP twojego serwera Git.
Aby sprawdzić, czy wszystko jest poprawnie skonfigurowane, utwórz plik testowy :
touch test_file
Dodaj zmiany do obszaru staging:
git add .
Zatwierdzić zmiany:
git commit -m "descriptive message"
Przepchnąć zmiany z lokalnego repozytorium do zdalnego repozytorium:
git push -u origin master
Jeśli wszystko jest skonfigurowane poprawnie, dane wyjściowe powinny wyglądać mniej więcej tak:
Aby dodać nowego współpracownika, wystarczy skopiować jego publiczny klucz SSH do pliku użytkownika „git” ~/.ssh/authorized_keys
.
Możesz użyć tych samych kroków, aby utworzyć nowe repozytoria. Ważne jest, aby pamiętać, że zdalne repozytorium musi istnieć, zanim dodasz git remote do swojego lokalnego repozytorium.
Zakończenie #
W tym tutorialu pokazaliśmy, jak skonfigurować własny prywatny serwer Git i tworzyć repozytoria.