Parcourir la source

relecture depot distant

Julien Dehos il y a 8 ans
Parent
commit
b83ffef823
2 fichiers modifiés avec 47 ajouts et 30 suppressions
  1. 47 30
      depot_distant.md
  2. BIN
      depot_distant_07a.png

+ 47 - 30
depot_distant.md

@@ -66,15 +66,18 @@ fichier `.git/config`).
 
 
 ## Synchroniser un dépôt local existant vers un dépôt distant
 ## Synchroniser un dépôt local existant vers un dépôt distant
 
 
-Si vous avez déjà créé et modifié un dépôt local, 
+Si vous avez déjà créé et modifié un dépôt local... 
 
 
 ![](depot_distant_07a.png)
 ![](depot_distant_07a.png)
 
 
 ![](depot_distant_07a.svg)
 ![](depot_distant_07a.svg)
 
 
-alors vous pouvez le synchroniser
-avec un dépôt distant en utilisant les commandes `git remote add origin ...`
-puis `git push -u origin master`. 
+... alors vous pouvez le synchroniser avec un dépôt distant.  Pour cela, il
+faut lancer la commande `git remote add origin ...` (pour ajouter, dans le
+dépôt local, un dépôt distant qu'on appellera `origin`) puis la commande `git
+push -u origin master` (pour pousser, dans le dépôt distant `origin`, la
+branche `master` du dépôt local).  Ces deux commandes synchronisent le dépôt
+distant et le dépôt local ; il n'est plus nécessaire de les relancer ensuite.
 
 
 ![](depot_distant_07b.png)
 ![](depot_distant_07b.png)
 
 
@@ -83,7 +86,8 @@ puis `git push -u origin master`.
 ## Récupérer (tirer) les commits d'un dépôt distant
 ## Récupérer (tirer) les commits d'un dépôt distant
 
 
 La commande `git pull` permet de récupérer les éventuelles modifications sur le
 La commande `git pull` permet de récupérer les éventuelles modifications sur le
-serveur et de les intégrer dans votre dépôt local.
+serveur (par exemple envoyées par un collaborateur ou par vous-même depuis une
+autre machine) et de les intégrer dans votre dépôt local.
 
 
 ![](depot_distant_08.png)
 ![](depot_distant_08.png)
 
 
@@ -116,27 +120,34 @@ graphique.
 
 
 Imaginons que vous avez modifié et commité un fichier, et que vous voulez
 Imaginons que vous avez modifié et commité un fichier, et que vous voulez
 l'envoyer sur le serveur. Pour cela, il faut d'abord faire un `git pull` avant
 l'envoyer sur le serveur. Pour cela, il faut d'abord faire un `git pull` avant
-le `git push` au cas où l'un de vos collaborateurs aurait envoyer une
-modification sur le serveur entre temps. 
+le `git push` au cas où l'un de vos collaborateurs aurait envoyé une
+modification sur le serveur entre-temps. 
 
 
-Si des modifications ont été faites en parallèle...
+En effet, si quelqu'un a commité et pushé des modifications en parallèle, alors
+le `master` du serveur pointe sur un commit différent du `master` local.
 
 
 ![](depot_distant_12a.svg)
 ![](depot_distant_12a.svg)
 
 
-... git est souvent capable de les fusionner mais parfois il n'arrive pas à
-résoudre le conflit et il vous demande de le faire manuellement.
+Il faut donc fusionner ces modifications, c'est-à-dire créer un nouveau commit
+rassemblant les modifications de `master` et de `origin/master` puis
+envoyer ce nouveau commit sur le serveur.  Git est souvent capable de faire ces
+fusions automatiquement mais parfois il n'arrive pas à résoudre le conflit et
+il vous demande de le faire manuellement.
 
 
+Dans le cas d'une fusion avec conflit, voici ce que ça peut donner : 
 ![](depot_distant_12.png)
 ![](depot_distant_12.png)
 
 
+On est donc dans un état non commité et contenant un conflit à résoudre.
+
 ![](depot_distant_12b.svg)
 ![](depot_distant_12b.svg)
 
 
-Pour résoudre un conflit, il suffit d'ouvrir le fichier en cause et de
-remplacez les zones marquées par le contenu que vous voulez obtenir. 
+Pour résoudre le conflit, il suffit d'ouvrir le fichier en cause et de
+remplacer les zones marquées par le contenu que vous voulez obtenir. 
 Il existe des outils graphiques comme `meld` qui peuvent vous y aider.
 Il existe des outils graphiques comme `meld` qui peuvent vous y aider.
 
 
 ![](depot_distant_13.png)
 ![](depot_distant_13.png)
 
 
-Une fois les conflits édités, vous pouvez commiter...
+Une fois le fichier corrigé, vous pouvez commiter...
 
 
 ![](depot_distant_14a.png)
 ![](depot_distant_14a.png)
 
 
@@ -159,24 +170,30 @@ Résumé des commandes git précédentes :
 
 
 Quelques conseils de méthode de travail :
 Quelques conseils de méthode de travail :
 
 
-- utilisez la page
+- Utilisez la page
   [https://gogs.univ-littoral.fr](https://gogs.univ-littoral.fr) pour créer et
   [https://gogs.univ-littoral.fr](https://gogs.univ-littoral.fr) pour créer et
-gérer vos dépôts distants
-- récupérez vos dépôts distants avec `git clone`
-- récupérez les modifications du serveur régulièrement (avec `git pull`)
-- faites un `git pull` avant d'envoyer vos nouveaux commits sur le serveur (avec `git push`)
-
-## Exercice
-
-- créez un dépôt sur le serveur gogs et récupérez-le dans un dépôt local
-- ajoutez/committez/pushez quelques fichiers et vérifiez sur le site gogs que
-  les modifications sont bien sur le serveur
-- clonez votre dépôt distant dans un second dépôt local ; committez/pushez
-  depuis ce second dépôt puis synchronisez le premier dépôt local et vérifiez
-que vous y récupérez bien les modifications réalisées dans le second
-- modifiez une même ligne d'un même fichier en parallèle sur les deux dépôts
-  locaux ; vérifiez que vous avez bien un conflit, résolvez-le et synchronisez
-tout le monde
+gérer vos dépôts distants.
+- Récupérez vos dépôts distants avec `git clone`.
+- Récupérez les modifications du serveur régulièrement (avec `git pull`).
+- Faites un `git pull` avant d'envoyer vos nouveaux commits sur le serveur (avec `git push`).
+
+## Exercice 1
+
+- Créez un dépôt sur le serveur gogs et récupérez-le dans un dépôt local.
+- Ajoutez/commitez/pushez quelques fichiers et vérifiez sur le site gogs que
+  les modifications sont bien sur le serveur.
+
+## Exercice 2
+
+- Associez-vous à un ou deux collègues.
+- Créez un dépôt sur le serveur gogs et ajoutez vos collègues comme collaborateurs.
+- Récupérez votre dépôt et ajoutez/commitez/pushez quelques fichiers.
+- Demandez à vos collègues de récupérer votre projet.
+- Demandez à un collègue de commiter/pusher une modification et vérifiez que
+  vous arrivez à la récupérer de votre côté.
+- Faites maintenant des modifications en parallèle sur un même fichier.
+- Vérifiez que vous avez bien un conflit, résolvez-le et synchronisez tout le
+  monde.
 
 
 * * * * *
 * * * * *
 
 

BIN
depot_distant_07a.png