logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
atelier:git-df:git-df [27/10/2012 19:11]
captnfab
atelier:git-df:git-df [28/11/2012 15:53]
captnfab je vais mordre smolski
Ligne 42: Ligne 42:
  
 ===== Clé SSH ===== ===== Clé SSH =====
 +
 +==== Créer les clés sh ====
  
 Créer une paire de clés ssh(([[config:​ssh | Configurer ssh]])). Créer une paire de clés ssh(([[config:​ssh | Configurer ssh]])).
-<​note>​nom_ou_pseudo = Votre nom ou votre pseudo, sans espace ni accent et en minuscule((En principe vous avez le droitmais notre tuto et pour éviter les erreurs, on adoptera cette convention)) !</​note>​+<​note>​nom_ou_pseudo = Votre nom ou votre pseudo, sans espace ni accent et en minuscule((En principe vous avez le droit mais, dans notre tuto et pour éviter les erreurs, on adoptera cette convention)) !</​note>​
  
 <code bash>​ssh-keygen -f ~/​.ssh/​df-git-nom_ou_pseudo</​code>​ <code bash>​ssh-keygen -f ~/​.ssh/​df-git-nom_ou_pseudo</​code>​
Ligne 59: Ligne 61:
 df-git-nom_ou_pseudo ​ df-git-nom_ou_pseudo.pub</​code>​ df-git-nom_ou_pseudo ​ df-git-nom_ou_pseudo.pub</​code>​
  
-Il vous faudra communiquer au captnfab __le fichier de la clé publique__((ou son contenu)) **df-git-nom_ou_pseudo.pub**,​ par email ou depuis le forum df par mp par exemple...+==== Communiquez la clé publique ==== 
 + 
 +Il vous faudra communiquer au [[http://​debian-facile.org/​profile.php?​id=302] | captnfab ​]] __le fichier de la clé publique__((ou son contenu)) **df-git-nom_ou_pseudo.pub**,​ par email ou depuis le forum df par mp par exemple...
  
 <note tip>​Cette clé publique n'est pas confidentielle. Elle permet simplement au serveur de vérifier que c'est bien vous qui vous connectez avec votre clé privée !</​note>​ <note tip>​Cette clé publique n'est pas confidentielle. Elle permet simplement au serveur de vérifier que c'est bien vous qui vous connectez avec votre clé privée !</​note>​
  
-En réponse, vous recevrez de ce cher matelot une configuration à mettre dans le fichier ​//~/​.ssh/​config//fichier ​à créer(([[commande:​mkdir]])) ​s'il n'y est pas : +Éditez ensuite ​le fichier ​''​~/​.ssh/​config''​, à créer s'il n'existe ​pas. 
-   ~/.ssh/config+Rajouter dans ce dernier le bloc de lignes que vous aura envoyé le captnfab en réponse à votre message.
  
-Ensuite, créez un répertoire dans votre ///home/user// (c'est le lieu le plus simple) qui vous servira de répertoire où faire transiter vos travaux git mis en commun sur le git-df. \\ +==== Créez le répertoire contenant vos git-projets-df ==== 
-Par exemple :+ 
 +Ensuite, créez un répertoire dans votre ''​/home/user'' ​(c'est le lieu le plus simple) qui vous servira de répertoire où faire transiter vos travaux git mis en commun sur le git-df. \\ 
 +Par exemple ​nommé //​projets-df// ​:
 <code bash> <code bash>
 mkdir ~/​projets-df</​code>​ mkdir ~/​projets-df</​code>​
Ligne 75: Ligne 81:
  Si vous avez créé une passphrase tapez :  Si vous avez créé une passphrase tapez :
 <code bash> <code bash>
-ssh-add ~/​.ssh/​df-git-nom_ou_pseudo</​code>​+ssh-add ~/​.ssh/​df-git-votre_pseudo</​code>​
  
 Cette ligne ajoute la passphrase en mémoire en la donnant à ssh-agent. ;-) Cette ligne ajoute la passphrase en mémoire en la donnant à ssh-agent. ;-)
  
 ===== Cloner un projet déjà en cours ===== ===== Cloner un projet déjà en cours =====
 +
 +<note tip>À l'​intention des sombres personnes qui gisent habituellement au fond des classes près des radiateurs, précisons bien ici que git ne vous transite pas vous vers le serveur, mais transitent uniquement les données échangées entre votre pc vers le serveur git distant, et vice et versa. //​Qu'​on se le dise// ! :-P (ce que jojo veux dire, c'est que vous n'avez pas de shell sur le serveur)</​note>​
 +
 +Afin de connaître la liste des dépôts auxquels vous avez accès en lecture ou en écriture, tapez la commande suivante :
 +<code bash>
 +$ ssh -T df-git
 +hello contributeur,​ the gitolite version here is 2.0.3
 +the gitolite config gives you the following access:
 +    @R_ @W_     ​bac-a-sable
 +    @R   ​W ​     docs/​ebook-facile
 +    @R          outils/​live-df
 +    @R   ​W ​     tutos/​latex/​pour-commencer
 +    @R          tutos/​systeme/​c-shell
 +</​code>​
 +Dans cet exemple, l'​utilisateur "​contributeur"​ a accès en écriture aux dépôts ''​bac-a-sable''​ (un dépôt pour faire des tests si vous n'​êtes pas familiers avec git), ''​docs/​ebook-facile'',​ le dépôt pour le projet ebook et ''​tutos/​latex/​pour-commencer''​. Il n'a qu'un accès en lecture aux deux autres projets.
 +
 +<note info>En tant que contributeur,​ vous avez accès en lecture/​écriture aux projets auxquels vous participez, et en lecture seule aux autres projets.
 +Il est en projet de faire en sorte que les non-contributeurs aient un accès web en lecture seule à tous les projets.</​note>​
  
 Se placer dans ce répertoire créé pour git : Se placer dans ce répertoire créé pour git :
Ligne 87: Ligne 111:
 Demander le téléchargement du répertoire du projet par clonage ainsi : Demander le téléchargement du répertoire du projet par clonage ainsi :
 <code bash> <code bash>
-git clone df-git-nom_ou_pseudo:​le_projet_commun</​code>​+git clone df-git:​le_projet_commun</​code>​
  
 Vous aurez à disposition personnelle ce répertoire et tout ce qu'il contient mis dans le répertoire git d'où vous avez lancé la commande : Vous aurez à disposition personnelle ce répertoire et tout ce qu'il contient mis dans le répertoire git d'où vous avez lancé la commande :
Ligne 94: Ligne 118:
 ===== Utilisation ===== ===== Utilisation =====
  
-Avant de faire un listing ​des commandes, ​voyons un cas typique ​d'​utilisation.+Si vous préférez voir un cas typique d'​utilisation avant de lire la liste des commandes, ​le TP1 suivant s'y prête bien : 
 +  * [[manuel:​git-df:​TP_basique|TP 1 : Exemple ​d'​utilisation ​basique]]
  
-[[git-df:​TP_basique|TP 1 : Exemple d'​utilisation basique]] 
  
-==== Exemple d'​utilisation basique ​====+==== Liste des commandes ​====
  
-Deux utilisateurs fictifs, //jojo// et //cap// ont clonés un dépôt git ''​bac-a-sable''​ dans le dossier ''​~/​df-git/''​. Voici un transcript de ce qu'a fait Cap pour en arriver là (Jojo ayant fait quelque chose de similaire). +<note important>Par précaution, à la fin de votre travail, n'oubliez ​pas de toujours __quitter ​le répertoire dédié à git__ sur votre machinepar exemple ​en tapant ​la commande :<codebash>cd</​code></​note>
- +
-<code> +
-cap@bicoque:​~$ mkdir ~/df-git/ +
-cap@bicoque:​~$ cd ~/df-git/ +
-cap@bicoque:​~/​df-git$ git clone df-git-cap:​bac-a-sable +
-cap@bicoque:​~/​df-git$ cd bac-a-sable/​ +
-cap@bicoque:​~/​df-git/​bac-a-sable$ +
-</​code>​ +
- +
-Jojo veut vérifier s'il y a des nouveautés sur le dépôt : +
- +
-<​code>​ +
-jojo@creperie:​~$ cd ~/​df-git/​bac-a-sable/​ +
-jojo@creperie:​~/​df-git/​bac-a-sable$ git pull +
-Already up-to-date. +
-</​code>​ +
- +
-''​git pull'':​ //pull// signifie « tirer » en anglaison tire les mises à jour depuis le serveur, vers notre copie locale) +
- +
-Visiblement,​ pas de mise à jourle dépôt est déjà //​up-do-date//​. +
- +
-Jojo veut alors créer un fichier ''​crêpes.miam''​ contenant sa dernière trouvaille. +
- +
-Il ouvre son éditeur de texte préféré et crée le-dit fichier, de sorte que... +
-<​code>​ +
-jojo@creperie:​~/​df-git/​bac-a-sable$ ls -l +
-total 4 +
--rw-r--r-- 1 jojo jojo  42 oct.  32 25:61 crêpes.miam +
-</​code>​ +
- +
-Il veut maintenant enregistrer ce changement dans le dépôt. +
- +
-Comme le fichier ''​crêpes.miam'' ​n'existait ​pas, il doit d'​abord demander à git de le surveiller. +
- +
-<​code>​jojo@creperie:​~/​df-git/​bac-a-sable$ git add crêpes.miam +
-jojo@creperie:​~/​df-git/​bac-a-sable$</​code>​ +
- +
-Avant de réellement sauvegarder ces modifications. +
- +
-<​code>​jojo@creperie:​~/​df-git/​bac-a-sable$ git commit</​code>​ +
-S'​ouvre alors son éditeur de texte préféré contenant le texte suivant: +
-<​code>​ +
-   +
-# Please enter the commit message for your changes. Lines starting +
-# with '#'​ will be ignored, and an empty message aborts the commit. +
-# On branch master +
-# Changes to be committed:​ +
-#   (use "git reset HEAD <​file>​..."​ to unstage) +
-+
-#>new file:   "​cr\303\252pes.miam"​ +
-</​code>​ +
- +
-On voit que le message indique qu'il y a un nouveau fichier "​cr\303\252pes.miam"​ (encodage ascii du nom utf8 du fichier). +
-Il doit indiquer dans cette fenêtre un résumé des opérations effectuées, ​sur la première ligne. Puissi nécessaire,​ une description plus détaillée ​en dessous (en sautant une ligne). Voici le fichier finalisé de Jojo. +
- +
-<​code>​Ma nouvelle recette de crêpe :-P +
- +
-Un peu moins de beurre et un peu plus de bière, que du bon :) +
-Coquine s'est régalée, trôôôôô !   +
-# Please enter the commit message for your changes. Lines starting +
-# with '#'​ will be ignored, and an empty message aborts the commit. +
-# On branch master +
-# Changes to be committed:​ +
-#   (use "git reset HEAD <​file>​..."​ to unstage) +
-+
-#>new file:   "​cr\303\252pes.miam"​ +
-</​code>​ +
- +
-Il enregistre et quitte son éditeur de texte. +
-<​code>​[master 7774c8a] Ma nouvelle recette de crêpe :-P +
- 1 file changed, 1 insertion(+) +
- ​create mode 100644 "​cr\303\252pes.miam"​ +
-jojo@creperie:​~/​df-git/​bac-a-sable$ +
-</​code>​ +
- +
-Les modifications sont donc bien enregistrées sur le dépôt, mais toujours localement sur la machine à Jojo. Pour envoyer ses modifications vers le serveur DF, il doit lancer ​la commande ​suivante: +
-<code>jojo@creperie:​~/​df-git/​bac-a-sable$ git push +
-Counting objects: 4, done. +
-Delta compression using up to 8 threads. +
-Compressing objects: 100% (2/2), done. +
-Writing objects: 100% (3/3), 388 bytes, done. +
-Total 3 (delta 0), reused 0 (delta 0) +
-To df-git-jojo:​bac-a-sable +
-   ​d83719f..7774c8a ​ master -> master +
-</​code>​ +
- +
-Comme sur IRC Jojo vante à Cap le goût inégalable de sa nouvelle recette, ce dernier décide d'​aller chercher la recette de jojo. +
- +
-<code>​cap@bicoque:​~/df-git/​bac-a-sable$ git pull +
-remote: Counting objects: 4, done. +
-remote: Compressing objects: 100% (2/2), done. +
-remote: Total 3 (delta 0), reused 0 (delta 0) +
-Unpacking objects: 100% (3/3), done. +
-From df-git-cap:​bac-a-sable +
-   ​d83719f..7774c8a ​ master ​    -> origin/​master +
-Updating d83719f..7774c8a +
-Fast-forward +
- "​cr\303\252pes.miam"​ |    1 + +
- 1 files changed, 1 insertions(+),​ 0 deletions(-) +
- ​create mode 100644 "​cr\303\252pes.miam"​ +
-</​code>​ +
- +
-Et voilà : +
- +
-<​code>​cap@bicoque:​~/​df-git/​bac-a-sable$ ls -l +
-total 4 +
--rw-r--r-- 1 cap cap  42 oct.  32 25:61 crêpes.miam +
-</​code>​ +
- +
-Cap veut réorganiser le dépôt pour mettre la recette à Jojo dans un dossier ''​recettes''​. +
- +
-Il commence par créer un dossier et il indique à git la nouvelle position / le nouveau nom du fichier crêpes.miam. Il enregistre ensuite ses modifications en faisant un //​commit//​. +
- +
-<​code>​$ mkdir recettes +
-$ git mv crêpes.miam recettes/</​code>​ +
- +
-''​git commit -a''​ permet ensuite d'​enregistrer les modifications faites pour tous les fichiers qui étaient déjà suivis par ''​git''​. Ie. pour lesquels quelqu'​un avait déjà fait ''​git add''​ avant. +
- +
-''​git push''​ envoie les modifications sur le serveur. +
- +
- +
-<​code>​$ git commit -a +
-[master 7e63d41] Rangement. +
- 1 file changed, 0 insertions(+),​ 0 deletions(-) +
- ​rename "​cr\303\252pes.miam"​ => "​recettes/​cr\303\252pes.miam"​ (100%) +
-$ git push +
-Counting objects: 4, done. +
-Delta compression using up to 8 threads. +
-Compressing objects: 100% (2/2), done. +
-Writing objects: 100% (3/3), 365 bytes, done. +
-Total 3 (delta 0), reused 0 (delta 0) +
-To df-git-cap:​bac-a-sable +
-   ​7774c8a..7e63d41 ​ master -> master +
-+
-</code> +
- +
- +
-==== Liste des commandes ====+
  
 Placez-vous dans le répertoire cloné du //​fichier_travail//​ Placez-vous dans le répertoire cloné du //​fichier_travail//​
Ligne 318: Ligne 204:
 //Et ainsi de suite...// //Et ainsi de suite...//
  
-===== Création projet ===== +==== Glossaire ====
- +
-//À suivre, jeu sais pas encore faire ça...// ;-) +
- +
- +
-===== Glossaire ​=====+
  
   - commit : Dans un gestionnaire de  suivi de version comme git,  chaque contributeur,​ après avoir apporté des modifications de son côté, peut les ajouter au projet principal. Cela s'​appelle faire un commit. Le gestionnaire de version permet, en cas de problème, de chercher parmis tous les commit la modification qui posait problème.   - commit : Dans un gestionnaire de  suivi de version comme git,  chaque contributeur,​ après avoir apporté des modifications de son côté, peut les ajouter au projet principal. Cela s'​appelle faire un commit. Le gestionnaire de version permet, en cas de problème, de chercher parmis tous les commit la modification qui posait problème.
Ligne 329: Ligne 210:
   - push : (pousser) Cela sert à envoyer les modifications que vous avez apporté (les commits) sur le dépot principal. En cas de conflit avec des modifications d'un autre utilisateur,​ vous pouvez les résoudre à la main   - push : (pousser) Cela sert à envoyer les modifications que vous avez apporté (les commits) sur le dépot principal. En cas de conflit avec des modifications d'un autre utilisateur,​ vous pouvez les résoudre à la main
   - pull : Cela vous permet d'​être à jour avec le dépot, et les modifications apportées par les autres.   - pull : Cela vous permet d'​être à jour avec le dépot, et les modifications apportées par les autres.
 +
 +===== Création projet =====
 +
 +//À suivre, jeu sais pas encore faire ça...// ;-)
 +
 +===== TP =====
 +  - [[manuel:​git-df:​TP_basique|TP 1 : Exemple d'​utilisation basique]]
 +  - [[manuel:​git-df:​TP_merge|TP 2 : Résoudre des conflits]]
 +
  
 ===== Lien et remerciement ===== ===== Lien et remerciement =====
atelier/git-df/git-df.txt · Dernière modification: 27/05/2018 20:48 par captnfab

Pied de page des forums

Propulsé par FluxBB