| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| outils:git [2024/08/05 11:19] – [5.3 Le dépôt distant] phil | outils:git [2025/08/03 18:00] (Version actuelle) – [1.2 Git] mno |
|---|
| ** Rédacteur(s)** : Philippe Mariano | ** Rédacteur(s)** : Philippe Mariano |
| |
| [Mise à jour le 1/8/2024] | [Mise à jour le 3/8/2025] |
| |
| * **Sources** | * **Sources** |
| |
| === 1.2 Git === | === 1.2 Git === |
| * **Présentation** \\ Git est un système de <html><a href="https://fr.wikipedia.org/wiki/Logiciel_de_gestion_de_versions" target="_blank">gestion de versions</a></html>. Il permet d'enregistrer et de suivre l'évolution de fichiers au cours du temps. Principalement utilisé par les développeurs, il facilite le travail collaboratif en permettant à chacun de visualiser les derniers changements, de repérer les modifications ayant pu entraîner des problèmes, etc. \\ Git stocke et gère des //instantanés// de son espace de travail. \\ Un de ses atouts est d'être un système de gestion <html><a href="https://fr.wikipedia.org/wiki/Gestion_de_versions#Gestion_de_versions_d.C3.A9centralis.C3.A9e" target="_blank">décentralisé</a></html>/distribué. Il ne nécessite donc pas de de serveur central : le répertoire Git contient tout l'historique du projet et peut donc être transféré à un autre collaborateur qui disposera de tout le travail réalisé et de tout l'historique. \\ C'est un <html><a href="https://fr.wikipedia.org/wiki/Logiciel_libre" target="_blank">logiciel libre</a></html> créé par <html><a href="https://fr.wikipedia.org/wiki/Linus_Torvalds" target="_blank">Linus Torvalds</a></html>, auteur du <html><a href="https://fr.wikipedia.org/wiki/Noyau_Linux" target="_blank">noyau Linux</a></html>, et distribué selon les termes de la <html><a href="https://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU" target="_blank">licence publique générale GNU</a></html> version 2. | * **Présentation** \\ Git est un système de <html><a href="https://fr.wikipedia.org/wiki/Logiciel_de_gestion_de_versions" target="_blank">gestion de versions</a></html>. Il permet d'enregistrer et de suivre l'évolution de fichiers au cours du temps. Principalement utilisé par les développeurs, il facilite le travail collaboratif en permettant à chacun de visualiser les derniers changements, de repérer les modifications ayant pu entraîner des problèmes, etc. \\ Git stocke et gère des //instantanés// de son espace de travail. \\ Un de ses atouts est d'être un système de gestion <html><a href="https://fr.wikipedia.org/wiki/Gestion_de_versions#Gestion_de_versions_d.C3.A9centralis.C3.A9e" target="_blank">décentralisé</a></html>/distribué. Il ne nécessite donc pas de serveur central : le répertoire Git contient tout l'historique du projet et peut donc être transféré à un autre collaborateur qui disposera de tout le travail réalisé et de tout l'historique. \\ C'est un <html><a href="https://fr.wikipedia.org/wiki/Logiciel_libre" target="_blank">logiciel libre</a></html> créé par <html><a href="https://fr.wikipedia.org/wiki/Linus_Torvalds" target="_blank">Linus Torvalds</a></html>, auteur du <html><a href="https://fr.wikipedia.org/wiki/Noyau_Linux" target="_blank">noyau Linux</a></html>, et distribué selon les termes de la <html><a href="https://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU" target="_blank">licence publique générale GNU</a></html> version 2. |
| |
| {{ :informatique:distributed.png?nolink |}} | {{ :informatique:distributed.png?nolink |}} |
| |
| <code bash> | <code bash> |
| | # L’option --global dans la commande git config sert à appliquer une configuration à l’ensemble de vos projets Git, |
| | # et non seulement à un projet spécifique. |
| git config --global user.name "Prénom Nom" | git config --global user.name "Prénom Nom" |
| git config --global user.email "mon_mail" | git config --global user.email "mon_mail" |
| - transférant ses modifications vers le dépôt distant. (**§5.5.1**) | - transférant ses modifications vers le dépôt distant. (**§5.5.1**) |
| - mettant à jour le dépôt local à partir du dépôt distant. (**§5.5.2**) | - mettant à jour le dépôt local à partir du dépôt distant. (**§5.5.2**) |
| - Attribuer les **droits d'écriture** sur le dépôt distant aux collaborateurs. (**§5.6**) | - Attribuer aux collaborateurs, les **droits d'écriture** sur le dépôt distant. (**§5.6**) |
| |
| * En tant que **collaborateur**, faire une copie du contenu du dépôt distant sur sa machine, pour cela : | * En tant que **collaborateur**, faire une copie du contenu du dépôt distant sur sa machine, pour cela : |
| |
| |
| === 5.3 Le dépôt distant === | === 5.3 Pousser le dépôt local === |
| |
| {{ :outils:depots.png?nolink&300|}} | {{ :outils:depots.png?nolink&300|}} |
| == 5.3.1 Créer un dépôt distant sur GitHub == | == 5.3.1 Créer un dépôt distant sur GitHub == |
| * Sélectionner **+** dans l'en-tête de Github {{:outils:github3.png?nolink&60|}} et compléter le formulaire pour créer le dépôt (**repository**) distant (**remote**). | * Sélectionner **+** dans l'en-tête de Github {{:outils:github3.png?nolink&60|}} et compléter le formulaire pour créer le dépôt (**repository**) distant (**remote**) et suivre les indications. |
| // Exemple // | // Exemple // |
| {{ :outils:creer_depot.png?nolink |}} | {{ :outils:github1.png?nolink |}} |
| |
| == 5.3.2 Associer un dépôt distant avec un dépôt local == | == 5.3.2 Associer un dépôt distant avec un dépôt local == |
| <callout type="info" title="Dépôt distant vers Dépôt local" icon="true">Il s'agit de créer un pont entre le dépôt distant (sur github) et le dépôt local (sur son poste) . Pour cela, on exécute la commande ci-dessous.</callout> | <callout type="info" title="Dépôt distant vers Dépôt local" icon="true">Il s'agit de créer un pont entre le dépôt distant (sur github) et le dépôt local (sur son poste) . Pour cela, on exécute la commande ci-dessous dans le dossier local.</callout> |
| |
| <code bash *.bash> | <code bash *.bash> |
| # distant et de lui associer l'alias "origin" | # distant et de lui associer l'alias "origin" |
| # origin est une convention de Git | # origin est une convention de Git |
| | git branch -M main # Définit main comme branche principale |
| </code> | </code> |
| |
| <callout type="tip" title="URL" icon="true">L'"url_du_dépôt_créé_par_github" se trouve en cliquant sur le bouton {{:outils:bp_code_github.png?nolink&80|}} sur la page du dépôt.</callout> | |
| |
| //Exemples// | |
| <code bash *.bash> | |
| git remote add origin https://github.com/WebGE/test1.git # cette commande entrée dans le répertoire test1 | |
| # relie test1 local à test1 sur GitHub | |
| </code> | |
| |
| <callout type="tip" title="get remote" icon="true">**git remote** permet de **vérifier l'association des dépôts distants** avec son projet.</callout> | |
| |
| <code bash *.bash> | |
| git remote # cette commande permet de vérifier l'association | |
| </code> | |
| |
| |
| == 5.3.3 Transférer l'intégralité de son dépôt local sur un dépôt distant == | == 5.3.3 Transférer l'intégralité de son dépôt local sur un dépôt distant == |
| * Pour transférer les fichiers de son projet sur github, on utilise la commande **git push -u**. | * Pour transférer les fichiers de son projet sur github, on utilise la commande **git push -u**. |
| |
| |
| //Exemple// | |
| <code bash *.bash> | <code bash *.bash> |
| git push -u origin master | git push -u origin main |
| </code> | </code> |
| |
| \\ | \\ |
| |
| === 5.4 Travail préalable du collaborateur : cloner un dépôt distant === | === 5.4 Cloner un dépôt distant === |
| <callout type="tip" title="Clone" icon="true">Il est possible de télécharger l'intégralité d'un dépôt distant sur sa machine en utilisant la commande **clone** de Git.</callout> | <callout type="tip" title="Clone" icon="true">Il est possible de télécharger l'intégralité d'un dépôt distant sur sa machine en utilisant la commande **clone** de Git.</callout> |
| |