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
 
-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.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)
 
@@ -83,7 +86,8 @@ puis `git push -u origin master`.
 ## 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
-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)
 
@@ -116,27 +120,34 @@ graphique.
 
 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
-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)
 
-... 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)
 
+On est donc dans un état non commité et contenant un conflit à résoudre.
+
 ![](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.
 
 ![](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)
 
@@ -159,24 +170,30 @@ Résumé des commandes git précédentes :
 
 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
-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