« Git » : différence entre les versions
mAucun résumé des modifications |
(Ajout des sections Utiliser Git, Fonctionnement, Commandes principales et Ressources) |
||
Ligne 22 : | Ligne 22 : | ||
== Installer Git == | == Installer Git == | ||
Pour travailler avec Git, vous allez utiliser quelques lignes de commandes simples depuis un terminal. Si vous n'êtes pas familier avec cet outil, vous pouvez vous référer à la page sur les [[STIC:STIC_I_-_Atelier_technique_2#Ligne_de_commande|lignes de commande]] | Pour travailler avec Git, vous allez utiliser quelques lignes de commandes simples depuis un terminal. Si vous n'êtes pas familier avec cet outil, vous pouvez vous référer à la page sur les [[STIC:STIC_I_-_Atelier_technique_2#Ligne_de_commande|lignes de commande]]. | ||
En premier lieu, | En premier lieu, téléchargez Git depuis la page [http://git-scm.com/downloads git-scm.com] en choisissant la version correspondant à votre machine. Comme il est possible que Git ait été installé avec d'autres logiciels, typiquement en installant Github Desktop, vous pouvez ouvrir un terminal et taper la ligne de commande suivante pour déterminer si Git est déjà installé et sous quelle version : | ||
<code>git --version</code> | <code>git --version</code> | ||
Ligne 64 : | Ligne 64 : | ||
Pour les curieux, vous pouvez visualiser votre configuration globale en tapant : | Pour les curieux, vous pouvez visualiser votre configuration globale en tapant : | ||
<code> git config --list</code> | <code> git config --list</code> | ||
== Débuter avec Git == | |||
Pour commencer à travailler avec Git, il y a deux solutions : | |||
* soit créer un dépôt vide si vous commencez un nouveau projet | |||
* soit cloner un dépôt existant et l'importer dans Git. Dans ce cas, vous récupérez tout l'historique (versions) des changements d'un projet pour travailler dessus. | |||
Un '''dépôt''', dans un logiciel de gestion de versions comme Git, est une '''copie du projet'''. On dit que chaque personne qui travaille sur le projet a une copie du dépôt. | |||
=== Créer un nouveau dépôt === | |||
Pour créer un nouveau dépôt en local, tout d'abord, il faut créer un dossier du nom du projet sur votre disque local. Vous pouvez simplement créer un dossier par le gestionnaire de dossier habituel, soit directement avec des lignes de commandes : | |||
<code> | |||
cd /home/user1 <br> | |||
mkdir projet1<br> | |||
cd projet1 | |||
</code> | |||
'''Ce qui veut dire''' | |||
''1re ligne'' | |||
* <code>cd</code> = ouvrir un répertoire | |||
* <code>/home</code> = répertoire "home" à la racine du disque (premier "/" = racine du disque) contenant le(s) profil(s) utilisateur(s). | |||
* <code>/user1</code> = répertoire personnel de l'utilisateur 1 | |||
''2e ligne:'' | |||
* <code>mkdir projet1</code>= commande permettant de créer le répertoire "projet1" dans le profil utilisateur précédemment ouvert | |||
''3e ligne:'' | |||
* <code>cd projet1</code>= ouvre le répertoire "projet1" dans le profil user1 du répertoire "home". | |||
Une fois le dossier créé, la dernière chose à faire d'initialiser un nouveau dépôt avec la commande <code>git init</code>. Cela signifie que vous venez de créer un nouveau projet Git dans le dossier où vous vous trouvez (un dossier cache ''.git'' vient tout simplement d'être créé). | |||
=== Cloner un dépôt existant === | |||
Cela signifie qu'on récupère tout l'historique et tous les codes source d'un projet avec Git. | |||
Comment trouver un dépôt Git ? vous pouvez vous rendre sur [https://github.com/ github.com] qui contient une multitude de dépôts Git et prenons, par exemple, [https://github.com/jquery/jquery Jquery], vous y trouvez notamment tous les fichiers du projet. | |||
Vous trouvez aussi l'adresse du dépôt (https), ce qui va vous permettre de cloner. | |||
Dans la ligne de commande, vérifiez que vous êtes bien à l'endroit où vous voulez cloner le projet (rappel, pour revenir à la racine du disque faire <code> cd /</code> = racine) et taper en ligne de commande: | |||
<code>git clone https://github.com/jquery/jquery.git</code>. | |||
Cela va créer un dossier "jquery" et y télécharger tous les fichiers source du projet ainsi que l'historique des modifications. Git compresse automatiquement les données pour le transfert et le stockage, il peut arriver que le clonage d'un dépôt prenne beaucoup de temps. | |||
NB: des messages apparaîtront dans la console. Le dernier de ces messages débutant par <code>checking out</code>; cela signifie que le clonage est terminé. | |||
NB2: pour cloner un dépôt, il y a plusieurs méthodes. | |||
* Une première méthode ci-dessus | |||
* Une deuxième méthode consiste tout simplement à télécharger le projet via "DOWNLOAD ZIP" | |||
* Une troisième méthode nécessite l'utilisation de Git Desktop. Pour cela, "forkez" le projet puis aller dans Git Desktop pour le cloner (cela nécessite donc de connaître Git Desktop). | |||
== Fonctionnement général de Git == | |||
Git a pour particularité de segmenter clairement les différents niveaux auxquels vous travaillez. En effet, on distingue trois niveaux d'organisation: | |||
# <code>Environnement de travail (Working Directory)</code> C'est l'endroit où vous ajoutez/modifiez/supprimez votre code et vos fichiers. | |||
# <code>Zone de transit (Staging Area)</code> C'est l'endroit où sont listées les modifications apportées dans votre environnement de travail. | |||
# <code>Dépôt final (Repository)</code> C'est l'endroit où Git stocke définitivement les changements apportés, ainsi que les différentes versions de votre projet. Il combine donc d'une part les codes et fichiers effectivement créés et liste les modifications apportées au répertoire, de sorte qu'on puisse aisément revenir sur les modifications apportées. | |||
[[Fichier:Git states.png|sans_cadre|centré|800px|Etapes de fonctionnement avec Git]] | |||
== Marche à suivre classique == | |||
Une fois le dossier projet créé et lié à un dépôt Git, vous pourrez, à chaque fois que vous en aurez envie, faire une sauvegarde d'une version du projet. Pour ce faire, voici une marche à suivre standard. | |||
* Ouvrez le terminal et aller dans le dossier du projet | |||
* Tapez <code>git status </code> : cette commande vous donnera '''l'état''' du projet, c'est-à-dire les différences entre votre environnement de travail (le dossier projet) et le dépôt Git. | |||
Si aucune modification n'a été apportée, le terminal affiche : nothing to commit, working tree clean | |||
* Si des modifications ont été apportées, vous verrez apparaitre deux zones : les fichiers déjà existants dans le dépôt Git qui ont été modifiés depuis le dernier ''commit'' et les nouveaux fichiers (qui n'existaient pas dans la version précédente). | |||
* A ce stade, vous allez identifier quels fichiers vous désirez sauvegarder dans le dépôt Git, avec la commande <code>git add</code>. Cette commande stocke temporairement les fichiers sélectionnés dans la zone de transit (''staging area''). Si vous souhaitez sauvegarder toutes les modifications apportées sur les différents fichiers du projet, il suffit de taper <code> git add .</code> qui "stage" la totalité des fichiers. | |||
* Une fois les fichiers sélections dans la zone de transit, il vous suffit de taper <code>git commit</code> pour créer un snapshot de votre projet (version sauvegardée) dans le dépôt Git. Afin de pouvoir facilement retrouver les versions précédentes, il est fortement conseillé d'ajouter un titre au commit en utilisant la commande <code>git commit -m"''titre de la version''"</code>. | |||
* Pour vérifier que tout s'est bien déroulé, vous pouvez faire un <code>git status </code> et contrôler l'état des fichiers. | |||
== Récapitulatif des commandes standards == | |||
{| | |||
| <code>git status</code> || donne un aperçu de l'état du dépôt par rapport aux modifications apportées | |||
|- | |||
| <code>git add</code> || ajoute les fichiers sélectionnés à la zone de transit | |||
|- | |||
| <code>git commit</code> || transfère les fichiers modifiés de la zone de transit au dépôt final | |||
|- | |||
| <code>git log</code> || liste les versions des fichiers. Ajouter <code>--oneline</code> pour un résumé des titres, sans les détails des sauvegardes | |||
|- | |||
| <code>git checkout</code> || Restaure une version précédente du projet | |||
|} | |||
== Ressources == | |||
* [https://git-scm.com Site officiel] | |||
* [https://git-scm.com/book/en/v2 Pro Git Book] Livre complet sur Git en ligne et gratuit (en anglais) | |||
[[Catégorie:Programmation]] | [[Catégorie:Programmation]] |
Version du 25 avril 2020 à 14:53
Cet article est en construction: un auteur est en train de le modifier.
En principe, le ou les auteurs en question devraient bientôt présenter une meilleure version.
Pour l'instant se référer à Git et Github
Introduction
Git est un système de contrôle de versions gratuit et open-source. Système de contrôle de versions est un terme complexe pour une chose simple : Git permet d'effectuer le suivi d'un projet, en enregistrant les modifications apportées aux fichiers qui font partie du projet (historique des versions). Il donne ainsi la possibilité de faire un suivi et accéder facilement à une version antérieure d'un fichier, sans avoir besoin de les nommer et archiver manuellement.
Git est devenu le système de contrôle de version le plus populaire de nos jours. Alors qu'il a initialement été utilisé principalement pour le développement informatique, il existe une tendance de plus en plus forte à l'adopter dans d'autres domaines, par exemple dans des projets de recherche à la fois comme support pour l'évolution d'un projet dans le temps et comme moyen de collaboration (ce qui implique l'intégration avec des plateformes online comme GitHub ou GitLab). Il est également très utile pour gérer plusieurs versions d'images ou de vidéos lors de projets de conception graphique.
Comment Git peut vous faciliter la vie
Si vous avez déjà eu l'occasion de travailler sur un projet, peu importe le domaine, vous vous êtes sûrement retrouvé à devoir nommer les différentes versions de vos documents, par exemple "docProjet_v1.docx". Celui-ci s'est rapidement transformé en "docProjet_v12.docx", pour autant que vous n'ayez pas oublié de faire une sauvegarde au lieu de travailler sur le document initial, perdu pour toujours... Il suffit que vous deviez collaborer avec deux partenaires sur un projet, et vous vous retrouvez avec un dossier comprenant des dizaines de documents, avec des numéros de versions différentes ET les acronymes des membres du groupe "docProjet_v13_mimi_modifié_v2"... tout ceci envoyé par email et stocké quelque part dans votre logiciel de messagerie!
Ce système de gestion manuelle est loin d'être optimal et c'est là qu'intervient Git. Avec quelques lignes de codes, vous avez le contrôle sur ce qui est créé, sauvegardé et récupéré, selon vos besoins. Les avantages principaux de Git sont :
- le suivi des changements dans un dossier projet (repository)
- la possibilité rapide de revenir à une version précédente pour un fichier ou tout le projet
- la facilitation de collaboration (centralisation et suivi des versions par utilisateur)
- la possibilité de créer des embranchements pour travailler sur des tâches différentes selon la progression d'un projet
- la réduction d'erreurs humaines dans l'archivage de fichiers
- et last but not least, en cas de perte ou de destruction de fichiers, ils sont récupérables simplement.
Installer Git
Pour travailler avec Git, vous allez utiliser quelques lignes de commandes simples depuis un terminal. Si vous n'êtes pas familier avec cet outil, vous pouvez vous référer à la page sur les lignes de commande.
En premier lieu, téléchargez Git depuis la page git-scm.com en choisissant la version correspondant à votre machine. Comme il est possible que Git ait été installé avec d'autres logiciels, typiquement en installant Github Desktop, vous pouvez ouvrir un terminal et taper la ligne de commande suivante pour déterminer si Git est déjà installé et sous quelle version :
git --version
Même si Git est déjà installé, il est probablement utile de mettre à jour avec la version la plus récente.
Il existe plusieurs façons d'installer Git en fonction de votre système d'exploitation, nous présentons les plus simples.
Windows
Sous Windows, l'installation est relativement simple. Rendez-vous sur Git for Windows (Git BASH) et téléchargez la dernière version disponible puis lancez-la et suivez les instructions. Pour l'installation, vous pouvez laisser toutes les configurations par défaut. Si vous voulez néanmoins que Git soit disponible également dans la ligne de commande de Windows (prompt ou powershell), cochez cette option :
MacOS
Il existe un installeur pour Mac : git-osx-installer :
- Téléchargez une archive
.dmg
qui vous donnera accès à plusieurs fichiers. - Ouvrez l'archive
.pkg
qui se trouve à l'intérieur; cela aura pour effet d'exécuter le programme d'installation. - Suivez les étapes en laissant les valeurs par défaut.
Vous pouvez également simplement utiliser XCode :
- Ouvrez un terminal et tapez
git --version
- Si Git est installé, cela renvoie sa version. Sinon, le terminal vous propose de l'installer.
Toutes les méthodes d'installations sont disponibles sur la page [1]
Configurer Git
Maintenant que Git est installé, il est intéressant de personnaliser au moins deux éléments : votre nom d'utilisateur et votre adresse email. Ces informations sont définies une fois au début et permettent de faire un suivi. Si vous utilisez Github, assurez-vous que vous utilisez bien les mêmes nom et email.
- Ouvrez une invite de commande (windows) ou un terminal (mac)
- Si vous ne l'avez pas fait à l'étape précédente, vérifiez que Git est installé en tapant
git --version
- Pour configurer votre nom d'utilisateur, tapez
git config --global user.name votre nom d'utilisateur
- Pour configurer votre adresse email, tapez
git config --global user.email votre email
Pour les curieux, vous pouvez visualiser votre configuration globale en tapant :
git config --list
Débuter avec Git
Pour commencer à travailler avec Git, il y a deux solutions :
- soit créer un dépôt vide si vous commencez un nouveau projet
- soit cloner un dépôt existant et l'importer dans Git. Dans ce cas, vous récupérez tout l'historique (versions) des changements d'un projet pour travailler dessus.
Un dépôt, dans un logiciel de gestion de versions comme Git, est une copie du projet. On dit que chaque personne qui travaille sur le projet a une copie du dépôt.
Créer un nouveau dépôt
Pour créer un nouveau dépôt en local, tout d'abord, il faut créer un dossier du nom du projet sur votre disque local. Vous pouvez simplement créer un dossier par le gestionnaire de dossier habituel, soit directement avec des lignes de commandes :
cd /home/user1
mkdir projet1
cd projet1
Ce qui veut dire
1re ligne
cd
= ouvrir un répertoire/home
= répertoire "home" à la racine du disque (premier "/" = racine du disque) contenant le(s) profil(s) utilisateur(s)./user1
= répertoire personnel de l'utilisateur 1
2e ligne:
mkdir projet1
= commande permettant de créer le répertoire "projet1" dans le profil utilisateur précédemment ouvert
3e ligne:
cd projet1
= ouvre le répertoire "projet1" dans le profil user1 du répertoire "home".
Une fois le dossier créé, la dernière chose à faire d'initialiser un nouveau dépôt avec la commande git init
. Cela signifie que vous venez de créer un nouveau projet Git dans le dossier où vous vous trouvez (un dossier cache .git vient tout simplement d'être créé).
Cloner un dépôt existant
Cela signifie qu'on récupère tout l'historique et tous les codes source d'un projet avec Git.
Comment trouver un dépôt Git ? vous pouvez vous rendre sur github.com qui contient une multitude de dépôts Git et prenons, par exemple, Jquery, vous y trouvez notamment tous les fichiers du projet.
Vous trouvez aussi l'adresse du dépôt (https), ce qui va vous permettre de cloner.
Dans la ligne de commande, vérifiez que vous êtes bien à l'endroit où vous voulez cloner le projet (rappel, pour revenir à la racine du disque faire cd /
= racine) et taper en ligne de commande:
git clone https://github.com/jquery/jquery.git
.
Cela va créer un dossier "jquery" et y télécharger tous les fichiers source du projet ainsi que l'historique des modifications. Git compresse automatiquement les données pour le transfert et le stockage, il peut arriver que le clonage d'un dépôt prenne beaucoup de temps.
NB: des messages apparaîtront dans la console. Le dernier de ces messages débutant par checking out
; cela signifie que le clonage est terminé.
NB2: pour cloner un dépôt, il y a plusieurs méthodes.
- Une première méthode ci-dessus
- Une deuxième méthode consiste tout simplement à télécharger le projet via "DOWNLOAD ZIP"
- Une troisième méthode nécessite l'utilisation de Git Desktop. Pour cela, "forkez" le projet puis aller dans Git Desktop pour le cloner (cela nécessite donc de connaître Git Desktop).
Fonctionnement général de Git
Git a pour particularité de segmenter clairement les différents niveaux auxquels vous travaillez. En effet, on distingue trois niveaux d'organisation:
Environnement de travail (Working Directory)
C'est l'endroit où vous ajoutez/modifiez/supprimez votre code et vos fichiers.Zone de transit (Staging Area)
C'est l'endroit où sont listées les modifications apportées dans votre environnement de travail.Dépôt final (Repository)
C'est l'endroit où Git stocke définitivement les changements apportés, ainsi que les différentes versions de votre projet. Il combine donc d'une part les codes et fichiers effectivement créés et liste les modifications apportées au répertoire, de sorte qu'on puisse aisément revenir sur les modifications apportées.
Marche à suivre classique
Une fois le dossier projet créé et lié à un dépôt Git, vous pourrez, à chaque fois que vous en aurez envie, faire une sauvegarde d'une version du projet. Pour ce faire, voici une marche à suivre standard.
- Ouvrez le terminal et aller dans le dossier du projet
- Tapez
git status
: cette commande vous donnera l'état du projet, c'est-à-dire les différences entre votre environnement de travail (le dossier projet) et le dépôt Git.
Si aucune modification n'a été apportée, le terminal affiche : nothing to commit, working tree clean
- Si des modifications ont été apportées, vous verrez apparaitre deux zones : les fichiers déjà existants dans le dépôt Git qui ont été modifiés depuis le dernier commit et les nouveaux fichiers (qui n'existaient pas dans la version précédente).
- A ce stade, vous allez identifier quels fichiers vous désirez sauvegarder dans le dépôt Git, avec la commande
git add
. Cette commande stocke temporairement les fichiers sélectionnés dans la zone de transit (staging area). Si vous souhaitez sauvegarder toutes les modifications apportées sur les différents fichiers du projet, il suffit de tapergit add .
qui "stage" la totalité des fichiers. - Une fois les fichiers sélections dans la zone de transit, il vous suffit de taper
git commit
pour créer un snapshot de votre projet (version sauvegardée) dans le dépôt Git. Afin de pouvoir facilement retrouver les versions précédentes, il est fortement conseillé d'ajouter un titre au commit en utilisant la commandegit commit -m"titre de la version"
. - Pour vérifier que tout s'est bien déroulé, vous pouvez faire un
git status
et contrôler l'état des fichiers.
Récapitulatif des commandes standards
git status |
donne un aperçu de l'état du dépôt par rapport aux modifications apportées |
git add |
ajoute les fichiers sélectionnés à la zone de transit |
git commit |
transfère les fichiers modifiés de la zone de transit au dépôt final |
git log |
liste les versions des fichiers. Ajouter --oneline pour un résumé des titres, sans les détails des sauvegardes
|
git checkout |
Restaure une version précédente du projet |
Ressources
- Site officiel
- Pro Git Book Livre complet sur Git en ligne et gratuit (en anglais)