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 11:18]
smolski
atelier:git-df:git-df [27/10/2012 19:11]
captnfab
Ligne 6: Ligne 6:
   * Objet : git pour df   * Objet : git pour df
   * Niveau requis : AVISÉ   * Niveau requis : AVISÉ
-  * Commentaires : // Ce tuto est destiné essentiellement aux participants des projets df via le installé sur le serveur df. //+  * Commentaires : // Ce tuto est destiné essentiellement aux participants des projets df via le dépôt git installé sur le serveur df. //
   * Débutant, à savoir :   * Débutant, à savoir :
 [[manuel:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) [[manuel:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
Ligne 14: Ligne 14:
 **Terminal root** : **Terminal root** :
  
-Mettre son système à jour +Mettre son système à jour :
-<code bash> +
-aptitude update</​code>​ +
- +
-Pour stable ​:+
 <code bash> <code bash>
 +aptitude update
 aptitude safe-upgrade</​code>​ aptitude safe-upgrade</​code>​
  
Ligne 26: Ligne 23:
 aptitude install git-core</​code>​ aptitude install git-core</​code>​
  
-<note tip>Tout le reste du tuto se passe en terminal ​user sauf indication ​précise.</​note>​+<note tip>Tout le reste du tuto se passe en terminal ​//​utilisateur// ​sauf indication ​contraire.</​note>​
  
 ===== Initialisation ===== ===== Initialisation =====
Ligne 33: Ligne 30:
 <code bash> <code bash>
 git config --global user.name "votre pseudo du forum" Majuscules ou espace autorisés. git config --global user.name "votre pseudo du forum" Majuscules ou espace autorisés.
-git config --global user.email "​votre@mail.com"</​code>​+git config --global user.email "​votre@mail.com"​ 
 +git config --global color.ui true 
 +</​code>​
  
 Ces commandes vont créer un fichier dans votre répertoire utilisateur qui sera utilisé par tout vos projets. Par défaut, ce fichier est ~/​.gitconfig et il contiendra quelque chose comme ça : Ces commandes vont créer un fichier dans votre répertoire utilisateur qui sera utilisé par tout vos projets. Par défaut, ce fichier est ~/​.gitconfig et il contiendra quelque chose comme ça :
Ligne 44: Ligne 43:
 ===== Clé SSH ===== ===== Clé SSH =====
  
-Créer une clé ssh(([[config:​ssh | Configurer ssh]])). +Créer une paire de clés ssh(([[config:​ssh | Configurer ssh]])). 
-<​note>​nom_ou_pseudo = Sans espace ni (pour ce qui concerne df uniquement) sans accent et en minuscule !</​note>​ +<​note>​nom_ou_pseudo = Votre nom ou votre pseudo, sans espace ni accent et en minuscule((En principe vous avez le droit. mais notre tuto et pour éviter les erreurs, on adoptera cette convention)) ​!</​note>​ 
-<code bash> + 
-ssh-keygen -f  df-git-nom_ou_pseudo</​code>​+<code bash>​ssh-keygen -f ~/.ssh/df-git-nom_ou_pseudo</​code>​
  
-<​note>​Il vous sera demandé si vous voulez ajouter une passphrase, à vous de voir si cela vous paraît nécessaire...</​note>​+<​note>​Il vous sera demandé si vous voulez ajouter une passphrase, à vous de voir si cela vous paraît nécessaire... Notez que si vous en saisissez une, il vous faudra la retaper à chaque nouvelle session de votre pc avant d'​utiliser les dépôts.</​note>​
  
 Ce qui donnera au final dans le répertoire ~/.ssh : Ce qui donnera au final dans le répertoire ~/.ssh :
Ligne 62: Ligne 61:
 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... 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...
  
-<note tip>​Cette clé publique n'pas lieu d'​être inquiétante en soit, elle permet simplement de vous identifier lorsque VOUS, vous demandez un accès et n'est pas intrusive dans votre propre pc !</​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 //conf//, fichier à créer(([[commande:​mkdir]])) s'il n'y est pas : +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 : 
-   ​~/​.ssh/​conf +   ​~/​.ssh/​config
- +
-Ensuite, faire un répertoire dans son ///​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.+
  
 +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 : Par exemple :
 <code bash> <code bash>
Ligne 75: Ligne 73:
 ==== passphrase ==== ==== passphrase ====
  
-<note important>​**ATTENTION** ! Contrairement au passwd de ssh, la création d'une passphrase implique qu'​elle vous sera demandée à chaque session avant toute utilisation du git !</​note>​ 
  Si vous avez créé une passphrase tapez :  Si vous avez créé une passphrase tapez :
 <code bash> <code bash>
Ligne 96: Ligne 93:
  
 ===== Utilisation ===== ===== Utilisation =====
 +
 +Avant de faire un listing des commandes, voyons un cas typique d'​utilisation.
 +
 +[[TP_basique|TP 1 : Exemple d'​utilisation basique]]
 +
 +==== Exemple d'​utilisation basique ====
 +
 +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).
 +
 +<​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 anglais, on tire les mises à jour depuis le serveur, vers notre copie locale)
 +
 +Visiblement,​ pas de mise à jour, le 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. Puis, si 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 107: Ligne 250:
 Lorsque vous avez fini et souhaitez partager ce que vous avez réalisé, vous l'​ajoutez : Lorsque vous avez fini et souhaitez partager ce que vous avez réalisé, vous l'​ajoutez :
  
-==== add ====+=== add ===
  
 <code bash> <code bash>
 git add fichier_travail</​code>​ git add fichier_travail</​code>​
  
-==== commit ​====+=== commit ===
  
 Vous le commitez : Vous le commitez :
Ligne 128: Ligne 271:
   6 # with '#'​ will be ignored, and an empty message aborts the commit.   6 # with '#'​ will be ignored, and an empty message aborts the commit.
   7 #   7 #
-  8 # Committer: ​Joel Smolski <user@mail.com>+  8 # Committer: ​votre pseudo du forum. Votre mail.
   9 #   9 #
  10 # On branch master  10 # On branch master
Ligne 137: Ligne 280:
  15 #</​code>​  15 #</​code>​
  
-==== push ====+En enregistrant tout cela dans votre terminal vous obtiendrez ensuite : 
 +<​code>​ 
 +[master 4daaf19] Tests matutinaux d'​utilisaton du git-df 
 + ​Committer:​ votre pseudo du forum. Votre mail. 
 + 
 +If the identity used for this commit is wrong, you can fix it with: 
 + 
 +    git commit --amend --author='Your Name <​you@example.com>'​ 
 + 
 + 1 files changed, 1 insertions(+),​ 1 deletions(-) 
 +</​code>​ 
 + 
 +=== push ===
  
 Vous le poussez vers le git-df : Vous le poussez vers le git-df :
Ligne 145: Ligne 300:
 Vous obtiendrez alors l'​édition de ces lignes : Vous obtiendrez alors l'​édition de ces lignes :
 <​code>​ <​code>​
-git pull +Counting objects: 5, done. 
-Already ​up-to-date+Delta compression using up to 4 threads
-admijoel@serveurdeb:~/test-jojo$ vim test  +Compressing objects100% (2/2), done. 
-admijoel@serveurdeb:~/test-jojo$ git add test +Writing objects100% (3/3), 432 bytes, done. 
-admijoel@serveurdeb:~/test-jojo$ git commit ​-a</​code>​+Total 3 (delta 0), reused 0 (delta 0) 
 +To df-git-nom_pseudo:fichier_travail 
 +   ​xxxxxxx..xxxxxxx ​ master ​-> master 
 +Already up-to-date.</​code>​
  
  
-==== pull ====+=== pull ===
  
 Plus tard, pour le tirer de nouveau vers vous avec toutes les interventions ajoutées : Plus tard, pour le tirer de nouveau vers vous avec toutes les interventions ajoutées :
Ligne 163: Ligne 321:
  
 //À suivre, jeu sais pas encore faire ça...// ;-) //À 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.
 +  - add : Cela sert à ajouter un nouveau fichier au dépot. Ce n'est pas une simple modification d'un fichier déja existant, comme avec commit.
 +  - 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.
  
 ===== Lien et remerciement ===== ===== Lien et remerciement =====
  
-Tuto référentielle ​:+Tuto référentiel ​:
   * [[http://​www.alexgirard.com/​git-book/​1_bienvenue_sur_git.html | Bienvenue sur git - alexgirard ]]   * [[http://​www.alexgirard.com/​git-book/​1_bienvenue_sur_git.html | Bienvenue sur git - alexgirard ]]
  
 //Merci à //​**enicar**//​ et au// **captnfab** ;-) //Merci à //​**enicar**//​ et au// **captnfab** ;-)
atelier/git-df/git-df.txt · Dernière modification: 27/05/2018 20:48 par captnfab

Pied de page des forums

Propulsé par FluxBB