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
git:gitminimal [2014/10/21 16:40] Emmanuel Brunogit:gitminimal [2023/09/20 18:52] (Version actuelle) – modification externe 127.0.0.1
Ligne 33: Ligne 33:
 Le contrôle d'accès aux entrepôt est réalisé avec les clés publiques des utilisateurs. Si ce n'est pas déjà fait, chaque utilisateur doit donc créer une paire de clés avec la commande ''ssh-keygen''.Il est conseillé de laisser la réponse par défaut à la première question (les clés seront réalisées en utilisant rsa, stockée dans ''~/.ssh'', la clé publique sera ''id_rsa.pub'' et la clé privée ''id_rsa''), la passphrase est utilisée pour sécurisé la clé privée. Le contrôle d'accès aux entrepôt est réalisé avec les clés publiques des utilisateurs. Si ce n'est pas déjà fait, chaque utilisateur doit donc créer une paire de clés avec la commande ''ssh-keygen''.Il est conseillé de laisser la réponse par défaut à la première question (les clés seront réalisées en utilisant rsa, stockée dans ''~/.ssh'', la clé publique sera ''id_rsa.pub'' et la clé privée ''id_rsa''), la passphrase est utilisée pour sécurisé la clé privée.
  
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno ~$ ssh-keygen  test@pc-bruno ~$ ssh-keygen 
 Generating public/private rsa key pair. Generating public/private rsa key pair.
Ligne 55: Ligne 56:
 |      ..E +      | |      ..E +      |
 +-----------------+ +-----------------+
-</cli>+</nowiki> 
 +</konsole>
  
-Si vous disposez d'un système de gestion des entrepôts (github, redmine, ...) votre clé **publique** peut maintenant être utilisée pour vous authentifier. Par exemple en l'ajoutant profil utilisateur dans Redmine (pour les étudiants de l'UTLN : https://lsis.univ-tln.fr/redmineedu/my/account).+Si vous disposez d'un système de gestion des entrepôts (github, redmine, ...) votre clé **publique** peut maintenant être utilisée pour vous authentifier. Par exemple en l'ajoutant profil utilisateur.
    
-** Attention, des clés devront être disponibles sur toutes les machines que vous allez utiliser.** Il faut donc soit les copier (les deux), soit en générer pour chaque machine (Redmine supporte l'utilisation de plusieurs clés pour un utilisateur).+** Attention, des clés devront être disponibles sur toutes les machines que vous allez utiliser.** Il faut donc soit les copier (les deux), soit en générer pour chaque machine.
  
 ==== Paramétrage de Git ==== ==== Paramétrage de Git ====
 Git a besoin au minimum de connaitre le nom et l'email à associer aux commit. Pour cela, exécutez les commandes suivantes (sur chaque machine utilisée) en changeant vos noms et email. La troisième commande définit le comportement par défaut du push. Git a besoin au minimum de connaitre le nom et l'email à associer aux commit. Pour cela, exécutez les commandes suivantes (sur chaque machine utilisée) en changeant vos noms et email. La troisième commande définit le comportement par défaut du push.
  
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno $ git config --global user.name    "John Doe" test@pc-bruno $ git config --global user.name    "John Doe"
 test@pc-bruno $ git config --global user.email   "john.doe@example.com" test@pc-bruno $ git config --global user.email   "john.doe@example.com"
 test@pc-bruno $ git config --global push.default simple test@pc-bruno $ git config --global push.default simple
-</cli>+</nowiki> 
 +</konsole>
  
 ===== Utilisation de base ===== ===== Utilisation de base =====
Ligne 75: Ligne 79:
  
 Pour créer un entrepôt, on utilise la commande ''git init'' : Pour créer un entrepôt, on utilise la commande ''git init'' :
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno ~$ mkdir monProjet test@pc-bruno ~$ mkdir monProjet
 test@pc-bruno ~$ cd monProjet/ test@pc-bruno ~$ cd monProjet/
 test@pc-bruno monProjet$ git init test@pc-bruno monProjet$ git init
 Dépôt Git vide initialisé dans /home/test/monProjet/.git/ Dépôt Git vide initialisé dans /home/test/monProjet/.git/
-</cli>+</nowiki> 
 +</konsole>
  
 Ici nous avons créé un répertoire vide mais il peut s'agit d'un répertoire déjà existant même si il a déjà du contenu. Ici nous avons créé un répertoire vide mais il peut s'agit d'un répertoire déjà existant même si il a déjà du contenu.
Ligne 86: Ligne 92:
 Pour cloner un repository existant (dont on connait l'adresse) on utilise la commande ''git clone''. Pour cloner un repository existant (dont on connait l'adresse) on utilise la commande ''git clone''.
  
-Par exemple, le projet sandbox dans redmine (https://lsis.univ-tln.fr/redmineedu/projects/sandbox) possède un dépôt Git. La page d'accueil du projet indique l'adresse de l'entrepôt (ssh://gitedu@lsis.univ-tln.fr/sandboxgit.gitet l'onglet ''Dépôt'' permet de le parcourir+Par exemple, ce projet github ([[https://github.com/dptinfoutln/m120192020_helloworld]]) possède un dépôt Git. La page d'accueil du projet indique l'adresse de l'entrepôt (dans le bouton clone) : 
 +  * en ssh pour un projet privé si votre clé à été ajoutée [[git@github.com:dptinfoutln/m120192020_helloworld.git]] 
 +  * en http sinon [[https://github.com/dptinfoutln/m120192020_helloworld.git]] 
 + 
 +<note important>Créer un compte github avec votre vrai nom, activer l'offre étudiant pour avoir des entrepôts privé et poster votre identifiant sur slack pour être ajouté à l'équipe du M1.</note>
  
 Pour le cloner : Pour le cloner :
-<cli+<konsole
-test@pc-bruno ~$ git clone ssh://gitedu@lsis.univ-tln.fr/sandboxgit.git +<nowiki> 
-Clonage dans 'sandboxgit'... +/tmp ❯❯❯ git clone git@github.com:dptinfoutln/m120192020_helloworld.git 
-remote: Counting objects: 22, done. +Clonage dans 'sandboxm1'... 
-remote: Compressing objects: 100% (14/14), done. +remote: Counting objects: 17, done. 
-remote: Total 22 (delta 2), reused (delta 0) +remote: Compressing objects: 100% (7/7), done. 
-Réception d'objets: 100% (22/22), done. +remote: Total 17 (delta 0), reused 17 (delta 0), pack-reused 0 
-Résolution des deltas: 100% (2/2), done.+Réception d'objets: 100% (17/17), fait.
 Vérification de la connectivité... fait. Vérification de la connectivité... fait.
-test@pc-bruno ~$ cd sandboxgit+/tmp ❯❯❯ cd sandboxm1 
-</cli>+</nowiki> 
 +</konsole>
  
-le répertoire ''sandboxgit'' contient maintenant une copie de l'entrepôt.+le répertoire ''sandboxm1'' contient maintenant une copie de l'entrepôt.
  
-Lors de la première connexion sur un serveur il est normal que ssh vous demande d'accepter son fingerprint. +Lors de la première connexion sur un serveur il est normal que ssh vous demande d'accepter son fingerprint (celui de github aura une autre empreinte)
   The authenticity of host 'lsis.univ-tln.fr (193.49.96.32)' can't be established.   The authenticity of host 'lsis.univ-tln.fr (193.49.96.32)' can't be established.
   RSA key fingerprint is 5f:aa:42:17:37:45:31:05:3d:a4:b0:06:fb:20:dc:82.   RSA key fingerprint is 5f:aa:42:17:37:45:31:05:3d:a4:b0:06:fb:20:dc:82.
Ligne 116: Ligne 127:
  
 Si la commande vous demande un mot de passe (et non la passphrase de votre clé) c'est que vous avez mal paramétré l'accès au serveur avec votre clé publique.   Si la commande vous demande un mot de passe (et non la passphrase de votre clé) c'est que vous avez mal paramétré l'accès au serveur avec votre clé publique.  
- 
-Si vous n'avez pas les droits sur ce projet le serveur vous le dira : 
-<cli> 
-test@pc-bruno ~$ git clone ssh://gitedu@lsis.univ-tln.fr/sandboxscrumgit.git 
-Clonage dans 'sandboxscrumgit'... 
-FATAL: R any sandboxscrumgit redmine_test DENIED by fallthru 
-(or you mis-spelled the reponame) 
-fatal: Could not read from remote repository. 
- 
-Please make sure you have the correct access rights 
-and the repository exists. 
-</cli> 
  
 Quand un entrepôt est créé avec la commande ''clone'', un lien vers l'entrepôt d'origine est conservé. Pour obtenir la liste des entrepôts distants associés à un entrepôt on utilise la commande ''git remote''. Quand un entrepôt est créé avec la commande ''clone'', un lien vers l'entrepôt d'origine est conservé. Pour obtenir la liste des entrepôts distants associés à un entrepôt on utilise la commande ''git remote''.
-<cli+<konsole
-test@pc-bruno sandboxgit$ git remote -v +<nowiki> 
-origin ssh://gitedu@lsis.univ-tln.fr/sandboxgit.git (fetch) +/t/sandboxm1 ❯❯❯ git remote -v                                                                    master 
-origin ssh://gitedu@lsis.univ-tln.fr/sandboxgit.git (push) +origin git@github.com:dptinfoutln/sandboxm1.git (fetch) 
-</cli>+origin git@github.com:dptinfoutln/sandboxm1.git (push) 
 +</nowiki> 
 +</konsole>
  
 ==== Commandes courantes ==== ==== Commandes courantes ====
Ligne 145: Ligne 146:
 L'exemple suivant illustre une utilisation classique : l'utilisateur test va créer un fichier ''test.txt'' (''echo''), le placer sous la surveillance de l'entrepôt (''add''), valider l'ajout (''commit'')).  Notez le détail des réponses de ''git status''. L'exemple suivant illustre une utilisation classique : l'utilisateur test va créer un fichier ''test.txt'' (''echo''), le placer sous la surveillance de l'entrepôt (''add''), valider l'ajout (''commit'')).  Notez le détail des réponses de ''git status''.
  
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno sandboxgit$ git status test@pc-bruno sandboxgit$ git status
 Sur la branche master Sur la branche master
Ligne 181: Ligne 183:
  
 rien à valider, la copie de travail est propre rien à valider, la copie de travail est propre
-</cli>+</nowiki> 
 +</konsole>
  
 A ce moment, les modifications sont validées mais locales. Il est possible de consulter le journal des modifications avec ''git log''. A ce moment, les modifications sont validées mais locales. Il est possible de consulter le journal des modifications avec ''git log''.
  
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno sandboxgit$ git log test@pc-bruno sandboxgit$ git log
 commit af73a0bcec8c38076a86e6758cdb088ce520f485 commit af73a0bcec8c38076a86e6758cdb088ce520f485
Ligne 199: Ligne 203:
     dummy fixes #99 closes #99     dummy fixes #99 closes #99
 ... ...
-</cli+</nowiki> 
 +</konsole
  
 On peut vérifier ce qui a changé à distance (''git remote update'' puis ''git status'') : On peut vérifier ce qui a changé à distance (''git remote update'' puis ''git status'') :
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno sandboxgit$ git remote update test@pc-bruno sandboxgit$ git remote update
 Récupération de origin Récupération de origin
Ligne 211: Ligne 217:
  
 rien à valider, la copie de travail est propre rien à valider, la copie de travail est propre
-</cli>+</nowiki> 
 +</konsole>
  
 Dans ce cas rien n'a changé, et l'on voit bien qu'il y a un commit à pousser. Dans ce cas rien n'a changé, et l'on voit bien qu'il y a un commit à pousser.
Ligne 217: Ligne 224:
 Nous allons maintenant modifier le fichier ''test.txt'' en ajoutant du texte (''echo''), accepter la modification (''add'') et la valider (''commit''). Ensuite, avant de pousser les modifications sur le serveur distant (''git push''),  nous allons vérifier si des changement sont intervenus et éventuellement mettre à jour la copie locale (''git pull''). Nous allons maintenant modifier le fichier ''test.txt'' en ajoutant du texte (''echo''), accepter la modification (''add'') et la valider (''commit''). Ensuite, avant de pousser les modifications sur le serveur distant (''git push''),  nous allons vérifier si des changement sont intervenus et éventuellement mettre à jour la copie locale (''git pull'').
  
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno sandboxgit$ echo "encore du texte">>test.txt test@pc-bruno sandboxgit$ echo "encore du texte">>test.txt
 test@pc-bruno sandboxgit$ git add test.txt  test@pc-bruno sandboxgit$ git add test.txt 
Ligne 241: Ligne 249:
 To ssh://gitedu@lsis.univ-tln.fr/sandboxgit.git To ssh://gitedu@lsis.univ-tln.fr/sandboxgit.git
    4160dd6..53fa162  master -> master    4160dd6..53fa162  master -> master
-</cli>+</nowiki> 
 +</konsole>
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
Ligne 254: Ligne 263:
 ==== Quels fichiers versionner ? ==== ==== Quels fichiers versionner ? ====
 Tous les fichiers ne doivent pas être déposé sur le système de gestion de version. Tous les fichiers ne doivent pas être déposé sur le système de gestion de version.
-Les détails sont donnés ici : http://bruno.lsis.univ-tln.fr/git/gitignore+Les détails sont donnés ici : http://bruno.univ-tln.fr/git/gitignore
  
 <WRAP center round important 60%> <WRAP center round important 60%>
Ligne 262: Ligne 271:
 ==== Naviguer dans l'historique ==== ==== Naviguer dans l'historique ====
 Comme nous l'avons déjà vu ''git log'' permet de consulter le journal des modifications:  Comme nous l'avons déjà vu ''git log'' permet de consulter le journal des modifications: 
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno sandboxgit$ git log test@pc-bruno sandboxgit$ git log
 commit 53fa162ffda184e6fdf9fdaa93fc60ae8b24d58a commit 53fa162ffda184e6fdf9fdaa93fc60ae8b24d58a
Ligne 281: Ligne 291:
     dummy fixes #99 closes #99     dummy fixes #99 closes #99
 ... ...
-</cli>+</nowiki> 
 +</konsole>
  
 Nous voyons qu'à chaque commit est associé un haché (SHA-1), par exemple 53fa162ffda184e6fdf9fdaa93fc60ae8b24d58a pour le dernier commit.  Nous voyons qu'à chaque commit est associé un haché (SHA-1), par exemple 53fa162ffda184e6fdf9fdaa93fc60ae8b24d58a pour le dernier commit. 
  
 Il est possible de voir ce qui s'est passé pour un commit donné : Il est possible de voir ce qui s'est passé pour un commit donné :
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno sandboxgit$ git show 53fa162ffda184e6fdf9fdaa93fc60ae8b24d58a test@pc-bruno sandboxgit$ git show 53fa162ffda184e6fdf9fdaa93fc60ae8b24d58a
 commit 53fa162ffda184e6fdf9fdaa93fc60ae8b24d58a commit 53fa162ffda184e6fdf9fdaa93fc60ae8b24d58a
Ligne 301: Ligne 313:
  hello  hello
 +encore du texte +encore du texte
-</cli>+</nowiki> 
 +</konsole>
  
 A noter, qu'il est possible de n'utiliser qu'un préfixe du hash à condition qu'il soit non ambigu. Git est même capable de les calculer seul.  A noter, qu'il est possible de n'utiliser qu'un préfixe du hash à condition qu'il soit non ambigu. Git est même capable de les calculer seul. 
  
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno sandboxgit$ git log --abbrev-commit --pretty=oneline test@pc-bruno sandboxgit$ git log --abbrev-commit --pretty=oneline
 53fa162 Ajout de précisions 53fa162 Ajout de précisions
 af73a0b Création d'un fichier texte à mon nom af73a0b Création d'un fichier texte à mon nom
 ... ...
-</cli>+</nowiki> 
 +</konsole>
  
 Il est aussi possible de voir ce qui a changé entre deux commit avec la commande ''git diff'' soit en indiquant deux commit entre lesquels faire la différence soit un seul (l'état courant sera alors utilisé) : Il est aussi possible de voir ce qui a changé entre deux commit avec la commande ''git diff'' soit en indiquant deux commit entre lesquels faire la différence soit un seul (l'état courant sera alors utilisé) :
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno sandboxgit$ git diff af73a0b test@pc-bruno sandboxgit$ git diff af73a0b
 diff --git a/test.txt b/test.txt diff --git a/test.txt b/test.txt
Ligne 322: Ligne 338:
  hello  hello
 +encore du texte +encore du texte
-</cli>+</nowiki> 
 +</konsole>
  
 ==== Traitement de base des conflits ==== ==== Traitement de base des conflits ====
Ligne 331: Ligne 348:
  
 Les commandes suivantes permettent de créer un entrepôt ''monProjetCentral'' de type bare et deux clone "Projet1" et "Projet2". Les commandes suivantes permettent de créer un entrepôt ''monProjetCentral'' de type bare et deux clone "Projet1" et "Projet2".
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno ~$ mkdir monProjetCentral && cd monProjetCentral && git --bare init test@pc-bruno ~$ mkdir monProjetCentral && cd monProjetCentral && git --bare init
 Dépôt Git vide initialisé dans /home/test/monProjetCentral/ Dépôt Git vide initialisé dans /home/test/monProjetCentral/
Ligne 347: Ligne 365:
 origin /home/test/monProjetCentral (fetch) origin /home/test/monProjetCentral (fetch)
 origin /home/test/monProjetCentral (push) origin /home/test/monProjetCentral (push)
-</cli>+</nowiki> 
 +</konsole>
  
 On notera qu'ici on a cloné un entrepôt local, il aurait pu être distant cela ne change rien. On notera aussi qu'il est possible de changer le nom du répertoire contenant le clone. Nous avons donc trois entrepôts : ''monProjetCentral'', ''monProjet1'' et ''monProjet2''. Le premier ne contient pas de copie de travail mais la base de données des changements. Les deux derniers sont des clones du premier (ils en gardent une référence), ils ont aussi chacun leur copie de travail. On notera qu'ici on a cloné un entrepôt local, il aurait pu être distant cela ne change rien. On notera aussi qu'il est possible de changer le nom du répertoire contenant le clone. Nous avons donc trois entrepôts : ''monProjetCentral'', ''monProjet1'' et ''monProjet2''. Le premier ne contient pas de copie de travail mais la base de données des changements. Les deux derniers sont des clones du premier (ils en gardent une référence), ils ont aussi chacun leur copie de travail.
  
 Nous allons maintenant ajouter un fichier README dans ''monProjet1'', le pousser dans l'entrepôt central. Nous allons maintenant ajouter un fichier README dans ''monProjet1'', le pousser dans l'entrepôt central.
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno ~$ cd monProjet1/ test@pc-bruno ~$ cd monProjet1/
 test@pc-bruno monProjet1$ echo "Hello">README && git add README test@pc-bruno monProjet1$ echo "Hello">README && git add README
Ligne 365: Ligne 385:
 To /home/test/monProjetCentral To /home/test/monProjetCentral
  * [new branch]      master -> master  * [new branch]      master -> master
-</cli>+</nowiki> 
 +</konsole>
  
 et mettre à jour ''monProjet2''. et mettre à jour ''monProjet2''.
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno monProjet1$ cd ../monProjet2/ test@pc-bruno monProjet1$ cd ../monProjet2/
 test@pc-bruno monProjet2$ git pull test@pc-bruno monProjet2$ git pull
Ligne 376: Ligne 398:
 Depuis /home/test/monProjetCentral Depuis /home/test/monProjetCentral
  * [nouvelle branche] master     -> origin/master  * [nouvelle branche] master     -> origin/master
-</cli>+</nowiki> 
 +</konsole>
  
 Habituellement, il y a un cycle de add/commit/pull/push depuis monProjet1 et monProjet2. Un problème va apparaître si l'un deux tente de pousser une modification sur fichier qui a déjà été modifié.  Habituellement, il y a un cycle de add/commit/pull/push depuis monProjet1 et monProjet2. Un problème va apparaître si l'un deux tente de pousser une modification sur fichier qui a déjà été modifié. 
  
 Par exemple, on modifie le fichier README dans monProjet1 et on pousse la modification : Par exemple, on modifie le fichier README dans monProjet1 et on pousse la modification :
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno monProjet1$ echo "Modif depuis 1">>README && git add READMEtest@pc-bruno monProjet1$ git commit -m "chgt depuis 1" && git push test@pc-bruno monProjet1$ echo "Modif depuis 1">>README && git add READMEtest@pc-bruno monProjet1$ git commit -m "chgt depuis 1" && git push
 [master 5cebb57] chgt depuis 1 [master 5cebb57] chgt depuis 1
Ligne 390: Ligne 414:
 To /home/test/monProjetCentral To /home/test/monProjetCentral
    0a1efb5..5cebb57  master -> master    0a1efb5..5cebb57  master -> master
-</cli>+</nowiki> 
 +</konsole>
  
 puis on modifie aussi README dans monProjet2 **sans avoir mis à jour** (donc sans faire de pull). puis on modifie aussi README dans monProjet2 **sans avoir mis à jour** (donc sans faire de pull).
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno monProjet2$ echo "Modif depuis 2">>README && git add README test@pc-bruno monProjet2$ echo "Modif depuis 2">>README && git add README
 test@pc-bruno monProjet2$ git commit -m "chgt depuis 2" && git push test@pc-bruno monProjet2$ git commit -m "chgt depuis 2" && git push
Ligne 406: Ligne 432:
 astuce: (par exemple 'git pull ...') avant de pousser à nouveau. astuce: (par exemple 'git pull ...') avant de pousser à nouveau.
 astuce: Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus d'information. astuce: Voir la 'Note à propos des avances rapides' dans 'git push --help' pour plus d'information.
-</cli>+</nowiki> 
 +</konsole>
  
 Nous avons modifié README à partir d'une version antérieure à celle sur le serveur et donc le push automatique n'est pas possible, il faut d'abord mettre à jour la copie locale. Dans ce cas, plusieurs situation peuvent se présenter soit les modifications peuvent être appliquée automatiquement soit il faut régler le problème manuellement.   Nous avons modifié README à partir d'une version antérieure à celle sur le serveur et donc le push automatique n'est pas possible, il faut d'abord mettre à jour la copie locale. Dans ce cas, plusieurs situation peuvent se présenter soit les modifications peuvent être appliquée automatiquement soit il faut régler le problème manuellement.  
  
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno monProjet2$ git pull test@pc-bruno monProjet2$ git pull
 remote: Counting objects: 5, done. remote: Counting objects: 5, done.
Ligne 420: Ligne 448:
 CONFLIT (contenu) : Conflit de fusion dans README CONFLIT (contenu) : Conflit de fusion dans README
 La fusion automatique a échoué ; réglez les conflits et validez le résultat. La fusion automatique a échoué ; réglez les conflits et validez le résultat.
-</cli>+</nowiki> 
 +</konsole>
  
 Dans le cas le contenu du fichier en conflit est modifié par git pour indiquer les différences des versions : Dans le cas le contenu du fichier en conflit est modifié par git pour indiquer les différences des versions :
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno monProjet2$ cat README  test@pc-bruno monProjet2$ cat README 
 Hello Hello
Ligne 431: Ligne 461:
 Modif depuis 1 Modif depuis 1
 >>>>>>> 5cebb57a2be60b9f7fbbe49b5735c256d1d285bf >>>>>>> 5cebb57a2be60b9f7fbbe49b5735c256d1d285bf
-</cli>+</nowiki> 
 +</konsole>
  
 Il faut éditer le fichier (ou utiliser un outils graphique de résolution de conflit) pour remettre le fichier dans un état cohérent c'est-à-dire : écraser la version locale par celle de l'entrepôt, faire le contraire ou fusionner en fonction de la situation.  Il faut éditer le fichier (ou utiliser un outils graphique de résolution de conflit) pour remettre le fichier dans un état cohérent c'est-à-dire : écraser la version locale par celle de l'entrepôt, faire le contraire ou fusionner en fonction de la situation. 
Ligne 437: Ligne 468:
 Dans notre exemple, nous avons fusionné en utilisant un éditeurs de texte les modifications dans monProjet2. Puis il faut les valider, les pousser dans l'entrepôt monProjetCentral. Dans notre exemple, nous avons fusionné en utilisant un éditeurs de texte les modifications dans monProjet2. Puis il faut les valider, les pousser dans l'entrepôt monProjetCentral.
  
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno monProjet2$ git add README  test@pc-bruno monProjet2$ git add README 
 test@pc-bruno monProjet2$ git commit -m "Résolution du conflit" test@pc-bruno monProjet2$ git commit -m "Résolution du conflit"
Ligne 451: Ligne 483:
 To /home/test/monProjetCentral To /home/test/monProjetCentral
    5cebb57..c982ffe  master -> master    5cebb57..c982ffe  master -> master
-</cli>+</nowiki> 
 +</konsole>
  
 On peut alors éventuellement mettre à jour monProjet1. On peut alors éventuellement mettre à jour monProjet1.
-<cli>+<konsole> 
 +<nowiki>
 test@pc-bruno monProjet1$ git pull test@pc-bruno monProjet1$ git pull
 remote: Counting objects: 10, done. remote: Counting objects: 10, done.
Ligne 466: Ligne 500:
  README | 2 ++  README | 2 ++
  1 file changed, 2 insertions(+)  1 file changed, 2 insertions(+)
-</cli>+</nowiki> 
 +</konsole>
  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
Ligne 475: Ligne 510:
  
 ====== ScreenCast Git avec Redmine ====== ====== ScreenCast Git avec Redmine ======
 +
 +<note important>CETTE PARTIE VA BIENTOT ETRE REMPLACEE</note>
 +
 Ce screencast présente la simplicité de la création et de l'utilisation d'un projet géré par Redmine et disposant d'un entrepôt Git. Ce screencast présente la simplicité de la création et de l'utilisation d'un projet géré par Redmine et disposant d'un entrepôt Git.
 +
 +https://www.youtube.com/watch?v=1GXIk-NxOXg
 +
 +https://www.youtube.com/watch?v=fJelNt3W9rw
  
 {{youtube>1GXIk-NxOXg}} {{youtube>1GXIk-NxOXg}}