====== 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
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 :
{{:technique:2020-12-10_18_24_12.png?400|https://github.com/php/php-src/network}}
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 l’arbre 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]] 2020/12/10 19:38//