J'ai plusieurs branches définies pour le projet en cours où toutes les branches sauf la branche master diffèrent du master uniquement par le même petit jeu de fichiers (moins de dix). Après l'implémentation d'une nouvelle fonctionnalité dans master, je souhaite répliquer ces modifications et ajouts aux autres branches avec le moins d'effort possible. Quelle est l'approche recommandée ici?Synchronisation de deux branches GIT qui ne diffèrent que par quelques fichiers
Répondre
Vous avez trois choix:
merge
: intéressant si tous les changements de maître doivent être visibles dans une branche, mais ce n'est pas toujours le cascherry-pick
: appliquer seulement certains commettre à une branche: la meilleure solution si votre branche n'a pas encore été poussée: vous rejouez il commit de votre branche au-dessus du maître
Mais: dans les trois cas, vous avez besoin à la caisse de la branche où vous souhaitez intégrer les changements, et répéter que pour chaque branches.
À moins que vos branches sont faites de l'un à l'autre:
---o branch B1
\
----o branch B2
\
----o branch B3
Dans ce cas, vous pouvez:
- ne fusionner les modifications apportées à la branche la plus spécifique (B3 ici), terminez votre travail sur B3
- puis fusionnez sur la branche parente B2 (si aucune évolution n'a eu lieu) sur B2, c'est en fait une fusion avance rapide)
- répétition pour B1 (qui est: terminer votre travail sur B2,
git checkout B1
,git merge B2
)
Normalement, lorsque je fixe une chose importante sur une branche (peut même être maître), et si je veux la même solution à répliquer à une autre branche, je fais git checkout my_latest_feature
et git merge --no-commit master
jamais essayé cherry-pick, mais je pense que, thats la meilleure façon que je suppose, comme écrémer ne fusionner ce changement spécifique et git merge --no-commit master
va essayer d'obtenir l'arbre entier (même d'autres commits en plus du dernier correctif). Je déteste toujours toute commande qui altère l'historique de validation. Cest la raison pour laquelle je ne rebase
Mise à jour: juste a trouvé cette même question: How to copy commits from one branch to another?
- 1. synchronisation git de branches rebasées
- 2. Impossible de diff fichiers dans deux branches distinctes dans Git
- 3. Comment voir les fichiers qui ont divergé sur deux branches Git?
- 4. Quelques fichiers désynchronisés mais git ne semble pas remarquer
- 5. Comment récupérer/cloner seulement quelques branches en utilisant git-svn?
- 6. Fusionner des branches avec Git
- 7. Sérialiser XML où les éléments ne diffèrent que par rel = "
- 8. Garder les branches en phase avec Git
- 9. Combinaison de branches de référentiel Git distinctes
- 10. git + fichiers partiellement partagés entre les branches/dépôts. C'est possible?
- 11. git-svn fusionner 2 svn branches
- 12. Git pour les branches locales
- 13. Synchronisation des dépôts avec Git
- 14. Comment faire pour que --detect-branches fonctionne avec git-p4?
- 15. comment identifier les branches qui doivent être fusionnées dans git
- 16. Fichiers non suivis entre les branches dans Git
- 17. Comment fusionner deux branches git qui se trouvent dans différents repos/dossiers locaux?
- 18. Deux méthodes qui diffèrent seulement dans LINQ où part-delegate?
- 19. Nettoyage branches Git à distance
- 20. Synchronisation de deux threads
- 21. Synchronisation de deux BindingSources
- 22. git ignore les fichiers qui ne sont pas dans .gitignore?
- 23. Fusion de plusieurs branches git en master?
- 24. Supprimer des branches qui ne sont pas dans le dépôt local en utilisant git
- 25. comment utiliser des branches imbriquées par git-svn
- 26. Comment faire pour que cette description longue et README diffèrent de quelques phrases?
- 27. Les branches git distantes ne sont pas représentées avec `git branch -r`?
- 28. Fusionner 2 branches ensemble dans GIT
- 29. Comment fusionner deux branches SVN?
- 30. FTPWebRequest Télécharger des fichiers ne téléchargeront que deux fichiers!
Quel est le problème avec 'git merge master'? Voulez-vous juste un moyen d'exécuter cela pour plusieurs branches dans une commande? –
@Jimmy, s'il vous plaît vérifier le deuxième paragraphe dans ma réponse. Et laissez-moi savoir ce que vous en pensez. –