aboutsummaryrefslogtreecommitdiff
path: root/serveur git debian.txt
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2021-02-23 03:01:46 +0100
committerpolo <ordipolo@gmx.fr>2021-02-23 03:01:46 +0100
commitc905f8bd2e7ed55e752e5b730219a38d9d7085cc (patch)
tree499f38514f5b926cb6209fda3dd333b2462b8225 /serveur git debian.txt
downloadtuto_git-c905f8bd2e7ed55e752e5b730219a38d9d7085cc.zip
première validation
Diffstat (limited to 'serveur git debian.txt')
-rw-r--r--serveur git debian.txt77
1 files changed, 77 insertions, 0 deletions
diff --git a/serveur git debian.txt b/serveur git debian.txt
new file mode 100644
index 0000000..5bc1485
--- /dev/null
+++ b/serveur git debian.txt
@@ -0,0 +1,77 @@
1Serveur Git sur Debian
2
31/ Installer le paquet git.
4On a aussi besoin du serveur ssh qu'on utilisera des deux manières (normale et en SFTP) et sans droit root (sauf pour l'installation là tout de suite).
5On prévoira aussi des sauvegardes régulières, etc. Perdre du code, c'est moche.
6
72/ Créer un dossier pour git (avec mkdir), quelques suggestions:
8/opt/git
9/var/data/git
10/home/git
11
12La dernière commande possibilité concerne le cas (pas forcément souhaitable) où on crée un utilisateur nommé git (taper "adduser git"), dont le mot de passe sera connu de tous les utilisateurs.
13
14J'ai choisi de le mettre dans /var/data parce que j'y ai déjà les données d'un site apache. Et puis c'est pas loind des sites web qui sont dans /var/www.
15
163/ Y créer un dossier pour le dépôt:
17mkdir /var/data/git/my_repos.git
18
19Je lui ai donné le nom "par convention": my_repos.git, bien que nommer les dépôts par projet ou par utilisateur me semblait plus logique. On pourra toujours en créer d'autre plus tard.
20
21Mon but est d'atteindre un dossier ou un autre par une adresse du type: git.ordipolo.fr/nom_du_dépôt.
22Il faudrait aussi que le dossier supporte deux types de clients git: l'appli console ou appli graphique normale et éventuellement plus tard un site apache/php.
23
244/ Concernant les droits, je ferais une suggestion: On a besoin que n'importe quel utilisateur puisse écrire dans my_repos.git, et notamment l'utilisateur du serveur apache "www-data". Ainsi par sécurité, on va cacher le dossier de niveau inférieur, ce qui nous fait:
25chmod 711 /var/data/git
26chmod 777 /var/data/git/my_repos.git
27Les utilisateurs devraient ainsi pouvoir atteindre le dépôt et placer des projets.
28Inconvénient: il faut être root pour créer un nouveau dépôt.
29
30Ayant créé ces dossiers en tant que root, il reste bien le propriétaire des deux dossiers.
31
32Nous pouvons maintenant nous déconnecter du compte root, taper "exit" ou faire un "Ctrl + d"
33
345/ Initialiser le dépôt depuis ssh
35cd /var/data/git/my_repos.git
36git init --bare
37
38Noter bien le paramètre --bare qui sert à initialiser un projet vide.
39C'est ce qu'il faut faire sur un serveur, on placera les fichiers dedans ensuite.
40Un client n'a lui pas besoin de ce paramètre.
41
42Si on ajoute --shared, le dossier est autorisé en écriture au groupe git.
43
44Nous pouvons maintenant nous déconnecter si nous étions connecté avec ssh.
45Le dépôt est utilisable par les clients.
46Ils peuvent procéder comme avec n'importe quel serveur git.
47
486/ Création d'un dépôt local côté client.
49
50Configuration prérequise (globale signifie pour tous dépôts):
51git config --global user.name "mon nom"
52git config --global user.email "mon_e-mail@exemple.com"
53git config --global init.defaultBranch master
54
55Un utilisateur crée un projet 'presque vide':
56mkdir monprojet
57cd monproject
58git init
59Ajouter au moins un fichier au projet (le push échoue à vide)
60git add "fichier"
61git commit -m 'première validation'
62git remote add origin polo@ordipolo.fr:/var/data/git/tuto_git
63git push origin master
64
65Ce que tout le mode va faire ensuite:
66git clone mon_nom@ordipolo.fr:/var/data/git/tuto_git
67cd projet
68nano "fichier"
69git commit -am 'correction du fichier "fichier"'
70git push origin master
71
72Note: avec la syntaxe "polo@ordipolo.fr:/chemin/..." on comprend que ssh est utilisé.
73C'est la méthode recommandée.
74Autres méthode:
75- connexion locale avec le chemin sans l'identifiant et le nom du serveur: utile si on utilise NFS.
76- connexion git: non sécurisé mais plus rapide, intéressant pour un dépôt public.
77