Comment fusionnez-vous les modifications sur les branches non-maître à partir d'un référentiel github bifurqué?
Dans les deux suivantes StackOverflow questions, de la accepté de répondre décrit comment fusionner les modifications à partir d'un fork du référentiel dans la situation où vous bifurquez un repo, le repo original est modifié, et que vous voulez fusionner les modifications apportées à la branche master de retour dans votre fourche repo.
- La fusion entre les fourches dans GitHub
- Fusionner les changements de distance github à votre dépôt local
Cependant, je ne suis pas clair sur la façon de vous tenir à jour sur la non-maîtrise des branches dans l'original pensions que vous fourchue. Par exemple, lorsque j'ai d'abord fourche bitprophet du tissu référentielil contenait les branches suivantes:
- maître
- De 0,9
- 0.9-doc-réécriture (n'existe plus)
- chemin-et-#24 (n'existe plus)
Les deux dernières branches, n'existent plus, et maintenant il ya une nouvelle branche flexible-task-declarations
. J'ai cherché, fusionné, et poussa ma branche principale, de sorte que le maître, origin/master, et en amont/master ont tous le même hash SHA1 et point à la même git instantané. Cependant, je ne suis pas sûr de savoir comment supprimer les branches qui n'existent plus et mettre à jour les nouvelles branches, de sorte que ma fourche est jusqu'à ce jour. Ai-je besoin pour suivre chaque amont de la branche et de récupérer, de fusion, et pousser chaque branche individuellement, ou est-il un meilleur moyen?
source d'informationauteur Matthew Rankin
Vous devez vous connecter pour publier un commentaire.
Le scénario 1: Supprimer les branches qui n'existent plus
À supprimer les branches qui n'existent plus, j'ai suivi les instructions fournies dans la réponse à StackOverflow question Comment puis-je supprimer une branche Git à la fois localement et dans Github? en exécutant les commandes suivantes:
Scénario 2: modifications de la Fusion dans un non-branche master
Pour obtenir l'amont/0.9 branche jusqu'à ce jour, je n'ai suivantes:
Scénario 3: le Suivi de la non-maîtrise des branches
Pas sûr que ce soit la meilleure façon de le gérer, mais voici ce que j'ai fait:
Pour confirmer que toutes les branches sont à la même livraison:
Cela permettra de montrer toutes les branches locales et à distance—et de montrer le plus récent message de validation et de hachage SHA1.
Recherches sur le Web, qui peuvent faire la lumière sur une meilleure méthode pour le traitement du scénario 3
De Django reinhardt, Github Flux de travail
Le projet Django a des instructions sur la façon de Collaborer sur Github qui utilise ce qui semble être le standard pour gérer la fourche, et en tirant en amont des changements.
Initiale Différente Configuration De La Fourche
Long Nguyen guest post intitulé La configuration de vos dépôts Git pour les projets open source sur GitHub sur Michael Hartl du blog décrit une méthode intéressante pour l'installation d'un dépôt Github que vous avez fourchue. Les objectifs de cette méthode selon l'article sont les suivants:
Fondamentalement, vous avez 3 à distance repo Git tonne considérer:
Vous pouvez ajouter de l'amont à distance des pensions de votre local.
regardez les branches distantes
et push (supprimer) ceux qui existe à l'origine, mais qui n'existent plus à l'amont
Puis
pour effacer les branches sur votre repo (qui n'existent plus sur l'origine, puisque vous venez de supprimer)
Les branches qui existent à la fois à l'origine et en amont doivent être synchronisés (rebasage vos branches locales sur le dessus de ceux de l'amont avant de pousser votre travail à l'origine peut être un bon moyen de rendre très facile pull request à l'amont: bitprophet n'aurait d'avance rapide, de fusion et de faire inclure votre travail)
Je ne sais pas si vous pourriez avoir un plus simple le processus de commande//script pour synchroniser les deux éloignés des dépôts.
Je suis tombé sur cette réponse, tout en cherchant comment faire le Scénario 3 dans la accepté de répondre à proprement. Après quelques recherches autour, avec git 1.8, vous pouvez effectuer les opérations suivantes: