web-dev-qa-db-fra.com

Fusion de deux branches dans GIT

Je viens tout juste de commencer à utiliser GIT et je trouve ça merveilleux, mais je suis un peu confus quant à ce que fait la commande merge.

Disons que nous avons un projet en cours dans la branche "A".

Je rentre chez moi et apporte des modifications à cette branche et l'enregistre en tant que "B" . Un autre programmeur modifie "A" et l'enregistre en tant que "C".

Existe-t-il un moyen de fusionner les deux branches "B" et "C" ensemble, puis de valider les modifications sous la forme d'une nouvelle branche, par exemple "D"?

Ou suis-je en train de manquer le point de "fusion"?

87
dotty

merge est utilisé pour rapprocher deux (ou plus) branches.

un petit exemple:

# on branch A:
# create new branch B
$ git checkout -b B
# hack hack
$ git commit -am "commit on branch B"

# create new branch C from A
$ git checkout -b C A
# hack hack
$ git commit -am "commit on branch C"

# go back to branch A
$ git checkout A
# hack hack
$ git commit -am "commit on branch A"

alors maintenant, il y a trois branches distinctes (à savoir A B et C) avec des têtes différentes

pour obtenir les modifications de B et C en A, extrayez A (déjà effectué dans cet exemple), puis utilisez la commande de fusion:

# create an octopus merge
$ git merge B C

votre histoire ressemblera alors à ceci:

…-o-o-x-------A
      |\     /|
      | B---/ |
       \     /
        C---/

si vous souhaitez fusionner au-delà des limites du référentiel/de l'ordinateur, consultez la commande git pull, par exemple. depuis le pc avec la branche A (cet exemple créera deux nouveaux commits):

# pull branch B
$ git pull ssh://Host/… B
# pull branch C
$ git pull ssh://Host/… C
152
knittl

si vous avez remorqué des branchesXetY.

vous devez fusionner les modifications de brancheYen brancheX

  1. vous devriez être sur la branche X# git checkout X

  2. puis exécutez la commande de fusion#git merge Y

1
Mohamed Shaban