diff options
author | polo <ordipolo@gmx.fr> | 2021-02-23 03:01:46 +0100 |
---|---|---|
committer | polo <ordipolo@gmx.fr> | 2021-02-23 03:01:46 +0100 |
commit | c905f8bd2e7ed55e752e5b730219a38d9d7085cc (patch) | |
tree | 499f38514f5b926cb6209fda3dd333b2462b8225 /serveur git debian.txt | |
download | tuto_git-c905f8bd2e7ed55e752e5b730219a38d9d7085cc.zip |
première validation
Diffstat (limited to 'serveur git debian.txt')
-rw-r--r-- | serveur git debian.txt | 77 |
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 @@ | |||
1 | Serveur Git sur Debian | ||
2 | |||
3 | 1/ Installer le paquet git. | ||
4 | On 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). | ||
5 | On prévoira aussi des sauvegardes régulières, etc. Perdre du code, c'est moche. | ||
6 | |||
7 | 2/ Créer un dossier pour git (avec mkdir), quelques suggestions: | ||
8 | /opt/git | ||
9 | /var/data/git | ||
10 | /home/git | ||
11 | |||
12 | La 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 | |||
14 | J'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 | |||
16 | 3/ Y créer un dossier pour le dépôt: | ||
17 | mkdir /var/data/git/my_repos.git | ||
18 | |||
19 | Je 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 | |||
21 | Mon but est d'atteindre un dossier ou un autre par une adresse du type: git.ordipolo.fr/nom_du_dépôt. | ||
22 | Il 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 | |||
24 | 4/ 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: | ||
25 | chmod 711 /var/data/git | ||
26 | chmod 777 /var/data/git/my_repos.git | ||
27 | Les utilisateurs devraient ainsi pouvoir atteindre le dépôt et placer des projets. | ||
28 | Inconvénient: il faut être root pour créer un nouveau dépôt. | ||
29 | |||
30 | Ayant créé ces dossiers en tant que root, il reste bien le propriétaire des deux dossiers. | ||
31 | |||
32 | Nous pouvons maintenant nous déconnecter du compte root, taper "exit" ou faire un "Ctrl + d" | ||
33 | |||
34 | 5/ Initialiser le dépôt depuis ssh | ||
35 | cd /var/data/git/my_repos.git | ||
36 | git init --bare | ||
37 | |||
38 | Noter bien le paramètre --bare qui sert à initialiser un projet vide. | ||
39 | C'est ce qu'il faut faire sur un serveur, on placera les fichiers dedans ensuite. | ||
40 | Un client n'a lui pas besoin de ce paramètre. | ||
41 | |||
42 | Si on ajoute --shared, le dossier est autorisé en écriture au groupe git. | ||
43 | |||
44 | Nous pouvons maintenant nous déconnecter si nous étions connecté avec ssh. | ||
45 | Le dépôt est utilisable par les clients. | ||
46 | Ils peuvent procéder comme avec n'importe quel serveur git. | ||
47 | |||
48 | 6/ Création d'un dépôt local côté client. | ||
49 | |||
50 | Configuration prérequise (globale signifie pour tous dépôts): | ||
51 | git config --global user.name "mon nom" | ||
52 | git config --global user.email "mon_e-mail@exemple.com" | ||
53 | git config --global init.defaultBranch master | ||
54 | |||
55 | Un utilisateur crée un projet 'presque vide': | ||
56 | mkdir monprojet | ||
57 | cd monproject | ||
58 | git init | ||
59 | Ajouter au moins un fichier au projet (le push échoue à vide) | ||
60 | git add "fichier" | ||
61 | git commit -m 'première validation' | ||
62 | git remote add origin polo@ordipolo.fr:/var/data/git/tuto_git | ||
63 | git push origin master | ||
64 | |||
65 | Ce que tout le mode va faire ensuite: | ||
66 | git clone mon_nom@ordipolo.fr:/var/data/git/tuto_git | ||
67 | cd projet | ||
68 | nano "fichier" | ||
69 | git commit -am 'correction du fichier "fichier"' | ||
70 | git push origin master | ||
71 | |||
72 | Note: avec la syntaxe "polo@ordipolo.fr:/chemin/..." on comprend que ssh est utilisé. | ||
73 | C'est la méthode recommandée. | ||
74 | Autres 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 | |||