Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:git_szerver

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

oktatas:linux:git_szerver [2019/08/16 22:35] (aktuális)
admin létrehozva
Sor 1: Sor 1:
 +[[oktatas:​linux|<​ Linux]]
  
 +====== Git szerver ======
 +
 +  * **Szerző:​** Sallai András
 +  * Copyright (c) Sallai András, 2014, 2015
 +  * Licenc: GNU Free Documentation License 1.3
 +  * Web: http://​szit.hu
 +===== Telepítés =====
 +==== A szerveren ====
 +
 +<code bash>
 +  apt-get install git
 +  apt-get install openssh-server
 +</​code>​
 +
 +
 +<code bash>
 +adduser git
 +mkdir /​home/​git/​projekt.git
 +cd /​home/​git/​projekt.git
 +git init --bare
 +</​code>​
 +
 +Egy üres tárolót hozunk létre (<​nowiki>​--bare kapcsoló; man git-remote</​nowiki>​).
 +
 +Vagy egy adott felhasználó ha belép, akkor így dolgozhat:
 +<code bash>
 +mkdir -p ~/​repo/​projekt1.git
 +cd ~/​repo/​projekt1.git
 +git init --bare
 +</​code>​
 +
 +A <​nowiki>​--bare</​nowiki>​ hatására a helyi könyvtár lesz tároló és nem keletkezik
 +egy .git nevű könyvtár.
 +
 +
 +==== Webes felület telepítése ====
 +
 +<code bash>
 +apt-get install gitweb
 +cp /​etc/​gitweb.conf /​etc/​gitweb.conf.eredeti
 +sed -i s/​\\/​var\\/​cache/​\\/​home/​ /​etc/​gitweb.conf
 +a2enmod cgi
 +</​code>​
 +
 +A webes felület elérése:
 +  lynx http://​servercim/​gitweb
 +===== A kliens gépen teszt projekt =====
 +
 +<code bash>
 +cd projektem
 +git init
 +git add .
 +git commit -m 'kezdo commit'​
 +git remote add origin git@gitserver:/​home/​git/​projekt.git
 +git push origin master
 +</​code>​
 +
 +A "​gitserver"​ helyett természetesen lehet IP címet is írni.
 +
 +===== Automatikus bejelentkezés =====
 +
 +<code bash>
 +su - git
 +mkdir .ssh && chmod 700 .ssh
 +touch .ssh/​authorized_keys && chmod 600 .ssh/​authorized_keys
 +</​code>​
 +
 +
 +Kulcs létrehozása:​
 +  ssh-keygen -t rsa
 +
 +
 +Az authorized_keys állományba fel kell venni a publikus kulcsokat. ​
 +
 +Tegyük fel, hogy a /tmp könyvtárban vannak a felhasználók publikus kulcsai.
 +Ekkor:
 +<code bash>
 +cat /​tmp/​id_rsa.joska.pub >> ~/​.ssh/​authorized_keys
 +cat /​tmp/​id_rsa.mari.pub >> ~/​.ssh/​authorized_keys
 +cat /​tmp/​id_rsa.kait.pub >> ~/​.ssh/​authorized_keys
 +</​code>​
 +
 +
 +===== Közös tároló SSH hozzáféréshez =====
 +
 +A közös munka másként is megoldható.
 +
 +A közös munkához közös könyvtár szükséges. A közös könyvtárhoz ​
 +lehet csoportos unix hozzáférés. A következő példában készítünk
 +egy "​fejlesztes"​ nevű csoportot. Létrehozunk számára a /home
 +könyvtárban egy "​fejlesztes"​ nevű könyvtárat,​ abban egy projekt1.git
 +könyvtárat. Létrehozunk egy "​joska"​ nevű felhasználót. A "​joska" ​
 +nevű felhasználót betesszük a "​fejlesztes"​ csoportba. Létrehozunk
 +a "​projekt1.git"​ könyvtárban egy Git tárolót. Ezek után a "​projekt1.git"​
 +könyvtár és tartalmát átadom a "​fejlesztes"​ csoportnak rekurzívan.
 +A "​projektek1.git"​ könyvtár és tartalmának beállítok rekurzívan ​
 +írási jogot a csoport számára.
 +
 +
 +<code bash>
 +addgroup fejlesztes
 +mkdir -p /​home/​fejlesztes/​projekt1.git
 +adduser joska
 +adduser joska fejlesztes
 +cd /​home/​fejlesztes/​projekt1.git
 +git init --bare
 +chgrp -R fejlesztes /​home/​fejlesztes/​projekt1.git
 +chmod -R g+w /​home/​fejlesztes/​projekt1.git
 +</​code>​
 +
 +Innen kezdve, akit felveszek a "​fejlesztes"​ csoportba, azok
 +tudnak feltölteni a projektbe. Az itt bemutatott módszer nem
 +az egyetlen megvalósítható megoldás.
 +
 +
 +===== Gitweb a felhasználók számára =====
 +
 +Tegyük fel, hogy egy szerveren van három felhasználó:​ joska, janos, mari.
 +Mindhárom felhasználó a saját könyvtárában hozza létre az egyes projektjei
 +számára a git tárolókat. Jóska például:
 +  mkdir /​home/​joska/​projekt1.git
 +  mkdir /​home/​joska/​projekt2.git
 +
 +A rendszerben a közös projektek a /home/git/ könyvtárban vannak.
 +Értelemszerűen ez a könyvtár van megjelölve a Gitweb számára, mint
 +weboldalon kiszolgáltatandó projektek könyvtár. ​
 +Ha Jóska felhasználó projektjeit is szeretnénk
 +kiszolgálni,​ akkor hozzuk létre a következő linket:
 +
 +  ln -s /​home/​joska/​ /​home/​git/​joska
 +
 +Innentől kezdve az ő projektjei is megjelennek a webhelyen.
 +
 +Tegyük fel, hogy Jóska nem szeretné az összes projektéjt ​
 +a webes felületen közzé tenni. Ekkor készít egy public_git
 +könyvtárat:​
 +  mkdir /​home/​joska/​public_git
 +A public_git könyvtárat linkeljük. A link létrehozása ezek után:
 +  ln -s /​home/​joska/​ /​home/​git/​joska/​public_git
 +
 +
 +===== Felhasznált források =====
 +  * http://​git-scm.com/​book/​en/​v2/​Git-on-the-Server-Setting-Up-the-Server (2014-11-06)
 +  * http://​askubuntu.com/​questions/​12647/​setting-up-a-git-server (2015-06-06)
 +  * [[https://​rwehner.wordpress.com/​2010/​03/​01/​a-simple-way-to-create-git-repository-on-a-server-machine-connecting-via-ssh/​|https://​rwehner.wordpress.com/​]] (2015-06-06)
 +  * https://​www.linux.com/​learn/​tutorials/​824358-how-to-run-your-own-git-server (2015-06-06)
oktatas/linux/git_szerver.txt · Utolsó módosítás: 2019/08/16 22:35 szerkesztette: admin