Je viens juste de commencer à utiliser GIT et je pense que c'est merveilleux, mais je suis un peu confus sur ce que fait la merge
commande.
Disons que nous avons un projet de travail dans la branche "A".
Je rentre chez moi, modifie cette branche et l'enregistre sous "B". Un autre programmeur modifie «A» et l'enregistre sous «C».
Existe-t-il un moyen de fusionner les deux branches «B» et «C» ensemble, puis de valider les modifications en tant que nouvelle branche, disons «D»?
Ou manque-t-il le point de «fusion»?
Réponses:
merge
est utilisé pour rapprocher deux (ou plus) branches.un petit exemple:
donc maintenant il y a trois branches séparées (à savoir AB et C) avec des têtes différentes
pour récupérer les modifications de B et C vers A, vérifiez A (déjà fait dans cet exemple), puis utilisez la commande de fusion:
votre historique ressemblera alors à ceci:
si vous souhaitez fusionner à travers les frontières du référentiel / ordinateur, jetez un œil à la
git pull
commande, par exemple à partir du pc avec la branche A (cet exemple créera deux nouveaux commits):la source
git add conflicting_files
puisgit commit
Si vous souhaitez fusionner les modifications de SubBranch vers MainBranch
git checkout MainBranch
git merge SubBranch
la source
Cas: si vous devez ignorer la validation de fusion créée par défaut , procédez comme suit.
Dites, une nouvelle branche de fonctionnalité est extraite du maître ayant déjà 2 validations,
Checkout a new feature_branch
La branche de fonctionnalité ajoute ensuite deux commits ->
Maintenant, si vous voulez fusionner les modifications de feature_branch avec master, restez
git merge feature_branch
assis sur le master.Cela ajoutera tous les commits dans la branche master (4 dans master + 2 dans feature_branch = total 6) + un commit de fusion supplémentaire quelque chose comme
'Merge branch 'feature_branch'
'car le master est divergé .Si vous avez vraiment besoin d'ignorer ces commits (ceux effectués dans FB) et d'ajouter toutes les modifications apportées à feature_branch en un seul commit comme
'Integrated feature branch changes into master'
, Rungit merge feature_merge --no-commit
.Avec --no-commit, il effectue la fusion et s'arrête juste avant de créer un commit de fusion.Nous aurons toutes les modifications ajoutées dans la branche de fonctionnalité maintenant dans master et aurons une chance de créer un nouveau commit comme le nôtre.
Lisez ici pour en savoir plus: https://git-scm.com/docs/git-merge
la source