Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fusionner des branches avec git

Récupérer des modifications faites dans des branches avec git

    23 août 2020 à 10:41:21

    C'est la première fois que j'utilise git pour un de mes projets, aussi pardonner c'est question sans doute basique mais je n'ai pas trouvée de réponse qui soit claire pour moi.

    Le cas est assez simple, je développe sur un projet en local et j'ai un prestataire qui développe également de son côté.

    J'ai fais des modifications, et lui aussi, il a fais des branches suivant les fonctionnalités sur lesquelles il a a travaillé. Je souhaite récupèrer le travail réalisé présent dans ces branches.

    On me dit de faire un clone et ensuite un merge des nouvelles branches en faisant en faisant par exemple git checkout authentification (après le clone).

    De ce que j'ai compris de la fonction clone, il me semble qu'il ne faut pas faire cela, je vais perdre mes modifs.

    J'ai essayé quand même après avoir fais une sauvegarde, je me suis retrouvé avec 2:3 des fichiers du projet qui avaient disparus.

    Pourriez vous m'indiquer quelles instructions je dois faire pour récupérer le travail accompli ?

    D'avance merci.

    • Partager sur Facebook
    • Partager sur Twitter
      23 août 2020 à 11:22:50

      Bonjour,

      Tu as plusieurs manières de récupérer son travail.

      Je te conseille de créer une nouvelle branche à partir de ta branche pour éviter de perdre une partie de ton boulot si tu te trompes dans les commandes suivantes.

      Pour créer la nouvelle branche, vas sur ta branche:

      git checkout ta_branche

      puis créé ta nouvelle branche:

      git checkout -b nom_de_la_branche_de_backup

      Ensuite pour récupérer le travail du prestataire, vas sur sa branche et fais un git pull:

      git checkout prestataire_branche
      git pull

      Une fois fait, retourne sur ta branche de backup:

      git checkout nom_de_la_branche_de_backup

      Ensuite fait un git rebase:

      git rebase prestataire_branche

      Si tu as des conflits pendant le rebase, corrige les et fait un:

      git rebase --continue

      en fonction du nombre de commit à traiter, tu auras sûrement plusieurs conflits à gérer et devoir faire plusieurs git rebase --continue.

      Une fois tous les conflits réglés, vérifies bien que tout fonctionne comme avant et que le code du prestataire est bien sur ta branche.

      Dès que c'est fait tu n'as plus qu'à push en faisant:

      git push --force

      A la place du rebase, tu peux faire:

      git pull branche_prestataire --merge

      mais je te conseille quand même de faire la première solution.

      Si lors de la résolution des conflits, tu vois que tu as trop de commits qui sont en conflits, tu peux squash les commits concernés par le rebase.

      Squash signifie réunir tous les commits en un seul.

      Tu auras toujours autant de conflits mais que tu pourras régler d'un coup (je ne rentrerai dans les détails que si tu vois que tu en as besoin).

      -
      Edité par eclairia 23 août 2020 à 11:24:18

      • Partager sur Facebook
      • Partager sur Twitter
      "Ils ne savaient pas que c'était impossible, alors ils l'ont fait" Mark Twain
        23 août 2020 à 14:26:00

        Bonjour,

        Déplacement vers un forum plus approprié

        Le sujet est déplacé de la section PHP vers la section Discussions développement

        • Partager sur Facebook
        • Partager sur Twitter

        Pas d'aide concernant le code par MP, le forum est là pour ça :)

          24 août 2020 à 9:31:57

          Merci beaucoup eclairia pour ces explications précises et détaillées,

          Je vais essayer cela et je vous tiens au courant.

          Christophe

          • Partager sur Facebook
          • Partager sur Twitter

          Fusionner des branches avec git

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown