J'ai une équipe avec plusieurs membres, et notre travail est basé sur un autre repo GIT, que nous ne sommes pas autorisés à pousser. Appelons cela repoA.Git piste externe/publique/branche à distance lors de la fusion dans le serveur local
Nous avons créé notre propre serveur GIT et le repo a été initialement cloné à partir de repoA. Appelons le repoB repoB cloné.
Notre équipe travaille sur repoB mais repoA continue d'évoluer. L'équipe qui maintient le repo ne se soucie pas de notre travail et ne veut pas que notre code «pollue» le leur, mais nous voulons obtenir leurs changements et les fusionner dans notre repoB. La "fusion" peut être un peu étrange: nous fusionnons la plupart des changements de repoA dans notre repoB, mais gardons le code inchangé, comme les méthodes que nous avons modifiées pour notre propre exigence. Je souhaite également que la fusion soit visible dans l''arbre d'historique', comme le [Repository] -> [Visualize All Branch History] de Git GUI, ou le [Show Log] de Tortoise Git, afin que je puisse clairement quel jour, à partir de quel engagement, j'ai fait une «synchronisation» de repoA dans mon repoB. Il serait préférable que je puisse avoir une «ligne de fusion» dans Git GUI et dans la carte historique de TortoiseGit.
Je sais une approche « laid » de le faire, par exemple:
- maître de Pull REPOA comme mon propre maître, mais tous commettras mon équipe et pousser à une branche appelée « local_main ». Toujours taper le maître de repoA sur mon maître local puis créer une branche temporaire 'pick_change', puis passer à 'local_main' et fusionner 'pick_change', puis supprimer la branche 'pick_change' localement, et pousser 'local_main' sur mon serveur GIT .
Avec cette façon, je peux:
- Pick-code utile à ma branche.
- Gardez le code que je ne veux pas, sans changement d'origine/maître
- voir clairement une ligne courbe « fusion de la branche » de branche maître à mon « local_main » branche dans le GUI Git ou de commettre le graphique de l'histoire de TortoiseGit, location Je sais qu'il y avait une fusion de cette validation de origine/maître à cette validation de mon 'local_main'.
Mais est-ce que c'est une manière «élégante» de le faire?
je pense que ce devrait être une exigence très commune, comme la création d'un noyau Linux privé basé sur le projet Linux publics, changer un peu de code, mais veulent toujours garder une autre partie mise à jour avec le projet Linux public et montrer clairement l'histoire que, à ce jour, notre projet a aligné avec cela, cela, que les versions de base de Linux.
Le livre 'ProGit' fournit juste un peu de concept mais ne semble pas être une solution détaillée. Ou quelqu'un peut-il me dire à quel chapitre de section dois-je me référer?
La procédure normale serait d'aller chercher le repo A, vérifier le repo B et fusionner repo A, non? Les outils pour visualiser l'historique git tel que le graphe du réseau de GitHub devraient alors afficher la fusion. – timakro