Android

Hoe een git-server in te stellen

Setting up *Your Own* Git Server

Setting up *Your Own* Git Server

Inhoudsopgave:

Anonim

Als het gaat om Git-hosting, heb je een aantal opties beschikbaar. GitHub, Gitlab en Bitbucket zijn populaire oplossingen, maar het runnen van je eigen Git-server is een alternatief dat het overwegen waard is.

Door een Git-server in te stellen, kunt u privérepository's maken zonder de beperkingen van de gratis plannen van de providers.

In deze gids leggen we uit hoe je een blote Git-server op Linux kunt instellen. Deze opstelling is goed als je weinig repositories hebt en de medewerkers technisch onderlegd zijn. Anders zou je moeten overwegen om een ​​zelf-gehoste git-applicatie zoals Gitea, Gogs of Gitlab te installeren.

De Git-server kan worden ingesteld op elke externe Linux-machine of zelfs op uw lokale systeem.

De Git-server instellen

De eerste stap is om Git op uw server te installeren.

sudo apt update && sudo apt install git

Om het git-pakket op CentOS-servers te installeren:

sudo yum install git

Maak vervolgens een nieuwe gebruiker die de Git-opslagplaatsen beheert:

sudo useradd -r -m -U -d /home/git -s /bin/bash git

De thuismap van de gebruiker is ingesteld op /home/git . Alle repositories worden onder deze map opgeslagen. We hebben geen wachtwoord ingesteld voor de gebruiker "git", het inloggen is alleen mogelijk met de ssh-toetsen.

Schakel naar gebruiker "git" met behulp van de opdracht su :

sudo su - git

Voer de volgende opdrachten uit om de SSH-map te maken en de juiste machtigingen in te stellen:

mkdir -p ~/.ssh && chmod 0700 ~/.ssh

Maak een bestand met de naam ~/.ssh/authorized_keys waarin de SSH-sleutels van de geautoriseerde gebruikers kunnen worden bewaard:

touch ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys

Dat is het. De serverinstelling is voltooid. Je bent nu klaar om je eerste Git-repository te maken.

Voer de volgende opdracht uit om een ​​nieuwe lege repository te starten:

git init --bare ~/projectname.git

U kunt de map een naam geven die u wilt. Het belangrijkste is om de repository te maken onder de "git" user home directory.

Initialized empty Git repository in /home/git/projectname.git/

Local Git Repository configureren

Om de lokale git-wijzigingen naar de Git-server te kunnen pushen, moet je je lokale openbare SSH-sleutel toevoegen aan het authorized_keys van de externe "git" -gebruiker.

cat ~/.ssh/id_rsa.pub

De uitvoer moet er ongeveer zo uitzien:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== [email protected]

Gebruik de volgende opdracht om een ​​nieuw SSH-sleutelpaar te genereren:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Kopieer de uitvoer van het bovenstaande cat commando en ga terug naar de Git-serverconsole.

Open op de server uw teksteditor en plak de openbare sleutel die u van uw lokale machine hebt gekopieerd in het bestand ~/.ssh/authorized_keys :

sudo nano /home/git/.ssh/authorized_keys

De hele openbare sleuteltekst moet op één regel staan.

We gaan ervan uit dat het Git-pakket al op uw lokale computer is geïnstalleerd. Als dit niet het geval is, installeer het dan op dezelfde manier als uitgelegd in de vorige paragrafen.

cd /path/to/local/project

Initialiseer een git repository:

git init.

De laatste stap is om de git remote toe te voegen aan je lokale repository:

git remote add origin git@git_server_ip:projectname.git

Vergeet niet om git_server_ip te vervangen door de hostnaam of het IP-adres van uw Git-server.

Maak een testbestand om te controleren of alles correct is ingesteld:

touch test_file

Voeg de wijzigingen toe aan het tijdelijke gebied:

git add.

Leg de wijzigingen vast:

git commit -m "descriptive message"

Push de wijzigingen in de lokale repository naar een externe repository:

git push -u origin master

Als alles correct is ingesteld, ziet de uitvoer er ongeveer zo uit:

Counting objects: 3, done. Writing objects: 100% (3/3), 218 bytes | 218.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To git_server_ip:projectname.git * master -> master Branch 'master' set up to track remote branch 'master' from 'origin'.

Om een ​​nieuwe medewerker toe te voegen, kopieert u gewoon de openbare SSH-sleutel naar het bestand ~/.ssh/authorized_keys van de "git" -gebruiker.

U kunt dezelfde stappen gebruiken om nieuwe opslagplaatsen te maken. Het is belangrijk op te merken dat de externe repository moet bestaan ​​voordat je de git remote toevoegt aan je lokale repository.

Conclusie

In deze tutorial hebben we je laten zien hoe je je eigen privé Git-server kunt instellen en repositories kunt maken.