aboutsummaryrefslogtreecommitdiff
path: root/services/git.md
blob: e00e43511e9125240019d33cc520f9d29c620d9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Dépôts Git publics
==================

Le dossier `git/`, à la racine de l'**espace personnel** est particulier.
Les dépôts Git rangés dedans seront automatiquement publiés en _lecture seule_
à l'adresse `https://git.club1.fr`, par exemple :

[`https://git.club1.fr/nicolas/dna-backup/`](https://git.club1.fr/nicolas/dna-backup/)
→ `/home/nicolas/git/dna-backup/`

Cette adresse permet 2 choses :

1. Cloner le dépôt Git avec `git clone` grâce au
   [git-http-backend](https://git-scm.com/docs/git-http-backend).
2. Consulter rapidement le dépôt et le sources dans un navigateur grâce à
   l'interface web [cgit](https://git.zx2c4.com/cgit/about/).

Tutoriel d'utilisation
----------------------

Pour utiliser la fonctionnalité de dépôts Git publics sur CLUB1, il faut tout
d'abord initialiser le dépôt à distance, avec [SSH](ssh), depuis un ordinateur personnel
(remplacer `<login>` par votre **identifiant** et `<repo>` par le nom que vous
voulez donner au dépôt) :

    ssh <login>@club1.fr git init --bare git/<repo>

Dès lors, le dépôt est publié en _lecture seule_ à l'adresse
`https://git.club1.fr/<login>/<repo>`, mais celui-ci est vide pour le
moment. La branche affichée par défaut dans l'interface web est `master`.
Il est possible de la changer en modifiant le fichier `HEAD` du dépôt.
Par exemple pour la remplacer par la branche `main` :

    echo "ref: refs/heads/main" | ssh <login>@club1.fr tee git/<repo>/HEAD

De la même manière, pour modifier la description du dépôt (cette modification
ne sera pas forcément visible tout de suite à cause du cache de cgit) :

    echo "ma super description" | ssh <login>@club1.fr tee git/<repo>/description

Il y a ensuite deux cas de figure :

- Création d'un nouveau dépôt
- Publication d'un dépôt existant

### Création d'un nouveau dépôt

Si le but est de créer un nouveau dépôt, alors le plus simple consiste
à cloner celui-ci sur votre ordinateur personnel.
On utilise pour cela l'adresse [SSH](ssh) car elle offre un accès en écriture
au dépôt :

    git clone <login>@club1.fr:git/<repo>

Un avertissement alertera sur le fait que le dépôt ainsi cloné est vide, ce
qui est normal :

    warning: You appear to have cloned an empty repository.

Il est désormais possible d'utiliser ce dépôt comme tout autre dépôt Git,
par exemple :

    cd <repo>
    echo 'Hello World!' >> README
    git add README
    git commit -m "add Hello World README"
    git push origin


### Publication d'un dépôt existant

Si le but est de publier un dépôt existant, alors il suffit d'ajouter le
dépôt distant aux _remotes_ et d'y pousser la branche désirée, par exemple
pour la branche `main` (l'option `--set-upstream` permet d'en faire la
_remote_ par défaut pour cette branche) :

    git remote add club1 <login>@club1:git/<repo>
    git push --set-upstream club1 main