Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes |
outils:git [2021/08/11 09:19] – modification externe 127.0.0.1 | outils:git [2023/08/19 12:28] – phil |
---|
[[:outils:accueiloutils|{{ :iconemaison.jpg?nolink&25|La boîte à outils}}]] | [[:outils:accueiloutils|{{ :iconemaison.jpg?nolink&25|La page outils}}]] |
| |
===== Gestion de versions : démarrer avec Git et Github ===== | ===== Outils - Démarrer avec Git et Github ===== |
{{ :informatique:git.png?nolink&200|}} | {{ :informatique:git.png?nolink&200|}} |
| |
** Rédacteur(s)** : Philippe Mariano | ** Rédacteur(s)** : Philippe Mariano |
| |
[Mise à jour le 10/8/2021] | [Mise à jour le 19/8/2023] |
| |
* **Sources** | * **Sources** |
| |
* **Ressources** | * **Ressources** |
| * <html><a href="https://www.hostinger.fr/tutoriels/tuto-git#Etape_2_-_Utilisation_de_GIT" target="_blank">Tuto GIT pour une prise en main rapide !</a></html> |
* <html><a href="https://github.github.com/training-kit/downloads/fr/github-git-cheat-sheet.pdf" target="_blank">Aide mémoire Github - Git</a></html> | * <html><a href="https://github.github.com/training-kit/downloads/fr/github-git-cheat-sheet.pdf" target="_blank">Aide mémoire Github - Git</a></html> |
* "Une référence visuelle de Git" est disponible <html><a href="https://marklodato.github.io/visual-git-guide/index-fr.html#basic-usage" target="_blank">ici</a></html> | * "Une référence visuelle de Git" est disponible <html><a href="https://marklodato.github.io/visual-git-guide/index-fr.html#basic-usage" target="_blank">ici</a></html> |
| **config** | **init** | **add** | **commit** | **revert** | **status** | **log** | | | **config** | **init** | **add** | **commit** | **revert** | **status** | **log** | |
| **branch** | **checkout** | **merge** | **remote** | **push** | **pull** | | | | **branch** | **checkout** | **merge** | **remote** | **push** | **pull** | | |
| |
| ---- |
| |
==== 1. Introduction ==== | ==== 1. Introduction ==== |
* Télécharger le logiciel et suivre les instructions sur le site de <html><a href="https://git-scm.com/" target="_blank">Git</a></html>.{{ :informatique:git0.png?nolink |}} | * Télécharger le logiciel et suivre les instructions sur le site de <html><a href="https://git-scm.com/" target="_blank">Git</a></html>.{{ :informatique:git0.png?nolink |}} |
* **Vérifier la version** | * **Vérifier la version** |
* Entrer la commande <html><a href="https://openclassrooms.com/fr/courses/1945566-automatisez-vos-taches-avec-batch/2635987-debuter-avec-batch" target="_blank" title="La ligne de commande">cmd</a></html> dans la barre de recherche pour ouvrir une **invite de commandes** puis tester la version avec le code ci-dessous. | * Entrer la commande **cmd** dans la barre de recherche pour ouvrir une **invite de commandes** puis tester la version avec le code ci-dessous. |
{{ :informatique:cmd.png?nolink&300 |}} | {{ :informatique:cmd.png?nolink&300 |}} |
| |
</code> | </code> |
| |
<note tip>Pour connaître la configuration d'un dépôt et notamment le nom et le mail de celui qui signe les commits par défaut, entrer la commande : **git config -l** .</note> | <callout type="tip" icon="true">Pour connaître la configuration d'un dépôt et notamment le nom et le mail de celui qui signe les commits par défaut, entrer la commande : **git config -l**.</callout> |
| |
---- | ---- |
| **add** | **commit** | **revert** | **config** | **init** | **log** | **status** | | | **add** | **commit** | **revert** | **config** | **init** | **log** | **status** | |
| |
<note important>Un dépôt Git se crée dans un répertoire de travail. L'effet obtenu n'est pas visible, **.git** est un répertoire caché.</note> | <callout type="warning" icon="true">Un dépôt Git se crée dans un répertoire de travail. L'effet obtenu n'est pas visible, **.git** est un répertoire caché.</callout> |
| |
{{ :informatique:repgit.png?nolink&250|testgit dans VSCode}} | {{ :informatique:repgit.png?nolink&250|testgit dans VSCode}} |
// Exemple // : Après avoir écrit du code dans un fichier index.html, on l'ajoute à la **zone de transit** puis on le valide. {{ :outils:git2.png?nolink |}} | // Exemple // : Après avoir écrit du code dans un fichier index.html, on l'ajoute à la **zone de transit** puis on le valide. {{ :outils:git2.png?nolink |}} |
| |
<note tip>Variantes de **add** et de **commit** \\ | <callout type="tip" icon="true" title="Variantes de add et de commit"> \\ |
<code bash *.bash> | <code bash *.bash> |
# Pour ajouter tous les fichiers du répertoire de travail dans la zone d'index | # Pour ajouter tous les fichiers du répertoire de travail dans la zone d'index |
git commit --amend --author "nom<adresse_mail>" | git commit --amend --author "nom<adresse_mail>" |
</code> | </code> |
</note> | </callout> |
| |
// Résumé // | // Résumé // |
{{ :outils:diagtrans1.png?nolink |}} | {{ :outils:diagtrans1.png?nolink |}} |
| |
<note important>**Git surveille les fichiers** et non les dossiers.</note> | <callout type="warning" icon="true">**Git surveille les fichiers** et non les dossiers.</callout> |
| |
=== 3.6 Afficher l'historique des modifications === | === 3.6 Afficher l'historique des modifications === |
{{ :outils:shagit.png?nolink |}} | {{ :outils:shagit.png?nolink |}} |
| |
<note>Pour revenir sur le **dernier commit**, entrer : **git checkout** master (notion vue plus loin)</note> | <callout type="info" icon="true">Pour revenir sur le **dernier commit**, entrer : **git checkout** master (notion vue plus loin)</callout> |
| |
=== 3.8 Annuler, modifier un commit === | === 3.8 Annuler, modifier un commit === |
// Exemple // {{ :outils:git5.png?nolink |}} | // Exemple // {{ :outils:git5.png?nolink |}} |
| |
<note important>La branche dans laquelle on se trouve est identifiée par un **asterisque**.</note> | <callout type="warning" icon="true">La branche dans laquelle on se trouve est identifiée par un **asterisque**.</callout> |
| |
* **Changer** de branche | * **Changer** de branche |
{{ :informatique:github.jpg?nolink&200|}} | {{ :informatique:github.jpg?nolink&200|}} |
| |
<note>**GitHub** est un service web d'hébergement et de gestion de développement de logiciels, utilisant le logiciel de gestion de versions Git.</note> | <callout type="info" icon="true">**GitHub** est un service web d'hébergement et de gestion de développement de logiciels, utilisant le logiciel de gestion de versions Git.</callout> |
| |
* **Commandes utilisées** dans ce paragraphe | * **Commandes utilisées** dans ce paragraphe |
{{ :outils:diagtrans2.png?nolink&250|}} | {{ :outils:diagtrans2.png?nolink&250|}} |
=== 5.1 Présentation === | === 5.1 Présentation === |
<note>L'initiateur d'un projet souhaite faire participer des collaborateurs.</note> | <callout type="info" icon="true">L'initiateur d'un projet souhaite faire participer des collaborateurs.</callout> |
* **Situation de départ** | * **Situation de départ** |
* Les fichiers de l'**initiateur** du projet sont dans un dépôt local (sur sa machine). | * Les fichiers de l'**initiateur** du projet sont dans un dépôt local (sur sa machine). |
{{ :informatique:github2.png?nolink |}} | {{ :informatique:github2.png?nolink |}} |
| |
<note warning>Cocher "**Initialize this repository with a README**" crée un premier fichier dans le dépôt. Cette option est à cocher **UNIQUEMENT** dans le cas où le projet **n'est pas dans un dépôt local** (sur sa machine).</note> | <callout type="warning" color="red" icon="true">Cocher "**Initialize this repository with a README**" crée un premier fichier dans le dépôt. Cette option est à cocher **UNIQUEMENT** dans le cas où le projet **n'est pas dans un dépôt local** (sur sa machine).</callout> |
| |
// Résultat // | // Résultat // |
</code> | </code> |
| |
<note tip>L'"url_du_dépôt_créé_par_github" se trouve en cliquant sur le bouton {{:informatique:clone.png?nolink|}} sur la page du dépôt.</note> | <callout type="tip" icon="true">L'"url_du_dépôt_créé_par_github" se trouve en cliquant sur le bouton {{:informatique:clone.png?nolink|}} sur la page du dépôt.</callout> |
| |
//Exemples// | //Exemples// |
</code> | </code> |
| |
<note tip>**git remote** permet de **vérifier l'association des dépôts distants** avec son projet.</note> | <callout type="tip" icon="true">**git remote** permet de **vérifier l'association des dépôts distants** avec son projet.</callout> |
| |
<code bash *.bash> | <code bash *.bash> |
</code> | </code> |
| |
<note tip>L'"**url_du_dépot_créé_par_github**" se trouve en cliquant sur le bouton {{:informatique:clone.png?nolink|}}</note> | <callout type="tip" icon="true">L'"**url_du_dépot_créé_par_github**" se trouve en cliquant sur le bouton {{:informatique:clone.png?nolink|}}</callout> |
| |
//Exemple// | //Exemple// |
{{ :informatique:github9.png?nolink |}} | {{ :informatique:github9.png?nolink |}} |
| |
<note>A ce stade les personnes ayant téléchargé le dépôt peuvent le modifier en local, mais **ne sont pas encore autorisées** à collaborer (modifier le dépôt original sur github). Pour cela, il faut les inviter et leur accorder des droits.</note> | <callout type="info" icon="true">A ce stade les personnes ayant téléchargé le dépôt peuvent le modifier en local, mais **ne sont pas encore autorisées** à collaborer (modifier le dépôt original sur github). Pour cela, il faut les inviter et leur accorder des droits.</callout> |
| |
== 5.5.3 Transférer ses modifications vers le dépôt distant == | == 5.5.3 Transférer ses modifications vers le dépôt distant == |