alpinux.site.2026/docs/technique/git.md

100 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# GIT
GIT est un outil de **gestion de versions**, un historique de modifications des fichiers. Cet outil est décentralisé et open source.
## Pour démarrer
Il faut configurer son paramétrage avec un dépôt Git. Il faut remplacer les valeurs suivantes par vos valeurs :
- `jlord`
- `jlord@exemple.com`
```
git config --global user.name "jlord"
git config --global user.email "jlord@exemple.com"
```
Pour un confort d'utilisation, il faut créer une clé SSH et en déposer la clé publique sur Git.
ssh-keygen -t rsa -b 8192 -C "jlord@exemple.com"
Ensuite, renseigner les informations dans le projet en cours.
```
git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/cle-pour-git -F /dev/null"
git remote set-url origin git@github.com:jlord/hello-world.git
```
Enfin étant donné que nous utilisons une clé spécifique, nous la renseignons dans `.shh/config`
```
# Git Account Identity
Host <jlord.github.com>
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/cle-pour-git
```
## Cas pratique : récupérer un site
Simon nous propose une utilisation avec la modification d'un site depuis son ordinateur.
---
Pour participer à un dépôt Git, il faut d'abord le **cloner** (=télécharger) en local.
Un dépôt est fait de **commit**, des versions de notre code dans le temps. Un commit est créé à chaque fois qu'une fonctionnalité est implémentée et fonctionnelle.
Dans l'idéal, il faut utiliser des branches pour séparer des "objectifs". Par exemple, si je veux mettre à jour l'apparence de mon site fait en PHP/HTML/CSS, je vais créer une branche "moderniser-apparence". Dans cette branche, je vais faire des **commits** des modifications de mes fichiers HTML/CSS. Un **commit** pour mettre à jour la barre de navigation, un pour mettre à jour la disposition des éléments...
Une fois que nous sommes satisfait de notre mise à jour, on **merge** (=fusionne) notre branche avec la branche principale, appelée **main** ou **master**.
Voici un exemple d'arbre du projet PHP :
![https://github.com/php/php-src/network](technique:2020-12-10_18_24_12.png)
Ici, je ne parlerais pas des branches que je ne connais pas suffisamment. Nous feront donc nos **commits** sur la branche main.
Voici les étapes :
**1. Cloner un dépôt dans un nouveau répertoire**
Le clonage d'un dépôt dans un sous-dossier
git clone https://github.com/jlord/hello-world.git
ou lorsque vous avez SSH de fonctionnel :
git clone git@github.com:jlord/hello-world.git
Ces deux exemples créeront un dossier `hello-world` à l'endroit de votre dossier de travail.
cd hello-world
**2. Modifier les fichiers**
Avec votre éditeur préféré (vim, vi, emacs, nano, gedit, eclipse, vs code, vscodium, sublim text ...) modifiez les fichiers à votre convenance.
**3. Montrer le statut de larbre de travail**
Une fois satisfait de vos changements, regardez les modifications des fichiers que vous voulez commit :
git status
**4. Mettre à jour l'index**
Pour désigner les fichiers qui vont faire partie de votre mise à jour
git add FICHIER1[, FICHIER2...]
Ou pour tous les fichiers changés :
git add .
**5. Enregistrer les modifications dans le dépôt**
Pour enregistrer vos modifications avec une description courte.
git commit -m "modif NAVBAR"
**6. Met à jour les références distantes**
Une fois tout vos changements effectués, on les **push**(= téléverser / upload).
Pour le premier téléversement :
git push -u origin master
Les fois suivantes :
git push
`master` représente le nom de la branche principale.
--- *[user:Alpinux - Simon L5D](user:Alpinux - Simon L5D.md) 2020/12/10 19:38*