====== 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//