Fusionner deux branches distantes dans git
MODIFIER
Permettez-moi de paraphraser, je voudrais fusionner deux dépôts git avec le même nom, mais différente de la télécommande.
Qui est, j'ai un repo_name hébergé dans git, sous un nom de branche de repo_name_a et j'ai ajouté une autre branche git sous nom de la branche : repo_name_b
Maintenant, à fusionner les, que puis-je faire ?
Je suis confus par votre terminologie. Un référentiel peut avoir plusieurs branches et les fourches. Deux dépôts sont généralement deux choses complètement distinctes des projets complètement distincts de maisons sur github et complètement distincte des histoires, et ne peuvent généralement pas être fusionnées.
Désolé pour la confusion. Après j'ai posé la question, j'ai compris quelque chose. Mais, maintenant, je suis coincé à la dernière partie. Le truc, c'est que j'ai un repo seulement, ce repo a maintenant 2 succursales. Maître et de test. Après avoir fait beaucoup de changements pour tester, je tiens à le fusionner avec le maître. C'est là que je suis coincé au. Merci pour la réponse très btw
pas de problème. la seconde moitié de ma réponse devrait vous donner deux façons vous pouvez fusionner test en maître.
Eh bien, c'est ce que je pensais, quand j'ai fait
Oui, c'est parce que test_repo contient déjà tous les trucs que maître contient (parce que c'est ramifiée de master). Vous remarquerez que ci-dessous, je vous suggère de vérifier maître et de la fusion dans test_repo. L'ordre inverse. 🙂
Désolé pour la confusion. Après j'ai posé la question, j'ai compris quelque chose. Mais, maintenant, je suis coincé à la dernière partie. Le truc, c'est que j'ai un repo seulement, ce repo a maintenant 2 succursales. Maître et de test. Après avoir fait beaucoup de changements pour tester, je tiens à le fusionner avec le maître. C'est là que je suis coincé au. Merci pour la réponse très btw
pas de problème. la seconde moitié de ma réponse devrait vous donner deux façons vous pouvez fusionner test en maître.
Eh bien, c'est ce que je pensais, quand j'ai fait
git checkout test_repo
git merge master
je reçois un message already upto date
quand ils sont clairement différentes de l'état.Oui, c'est parce que test_repo contient déjà tous les trucs que maître contient (parce que c'est ramifiée de master). Vous remarquerez que ci-dessous, je vous suggère de vérifier maître et de la fusion dans test_repo. L'ordre inverse. 🙂
OriginalL'auteur spartak | 2014-06-10
Vous devez vous connecter pour publier un commentaire.
La réponse que j'ai donnée ci-dessous a été à la précédente version de le sens de la question. Maintenant, il semble être une chose totalement différente. Cela peut ne pas être pertinentes.
Ce que vous avez décrit, c'est fondamentalement la façon dont git est destiné à être utilisé, avec des fonctionnalités supplémentaires/travail effectué dans une branche, puis fusionnée à maîtriser une fois rempli/revue.
git clone https://github.com/master_repo/master_repo
est le bon de commande pour obtenir une copie de ce repo dans votre machine locale. Pour ensuite faire une branche pour travailler,
git checkout -b test_repo
est également correcte.Mais ensuite, lorsque vous travaillez dans votre nouvelle branche, vous allez faire
git add <name of file>
etgit commit
lorsque l'on travaille dans cette branche, de nombreuses fois, et puis quand vous voulez mettre à jour le référentiel distant de l'histoire de votre test de branche, vous ferezgit push origin test_repo
Cela signifie pousser mes trucs à l'origine dans le test_repo branche.
Si vous travaillez dans une pension de tous par votre seul, alors vous voulez fusionner pour maître, sur votre machine locale, la meilleure chose à faire est de
git checkout master
git merge test_repo
Vous ne serez probablement pas en finir avec les conflits de fusion, mais si vous le faites, vous allez les résoudre. Et puis, à partir de votre branche master, vous pouvez le faire
git push origin master
pour mettre à jour la branche distante.Si vous travaillez sur un projet avec des collaborateurs, au lieu de cela, vous souhaiterez probablement utiliser le github interface web pour créer un "pull request" de la test_repo branche à la branche principale. Vos collaborateurs pourrait alors examiner vos modifications et de suggérer des améliorations et, finalement, être en charge de la fusion de la branche en maître.
Vous pouvez également le faire si vous travaillez sur quelque chose de vous-même. Créer une demande de pull avec un haut niveau de description de ce que les changements que vous demandez d'avoir tiré vers l'arrière en maître, et puis vous pouvez fusionner les demande de pull en maître sur l'interface web. C'est un peu de la sécurité, de la meilleure méthode, car il est finalement la manière dont vous souhaitez utiliser git pour collaborer sur des projets, et il laisse une belle descriptif de l'histoire de ce que toutes les fusions de maître accompli.
Si vous choisissez de le faire, puis une fois qu'une branche est fusionné, vous pouvez le supprimer à distance et exécuter
git remote prune origin
localement pour supprimer votre succursale locale (et toutes les branches locales qui ont été supprimés à distance.)OriginalL'auteur akgill