2015-07-17 3 views
1

J'ai un dépôt git local appelé "web" qui est un clone d'un dépôt distant (origine). Je tire de ce repo pour garder le web à jour et quand je fais git diff origine/master ma copie n'a pas divergé de l'origine.Git déplacer des modifications d'un dépôt local à un autre dépôt local

Cependant, j'ai aussi un autre dépôt local appelé "web2" qui est ma copie originale du dépôt distant (origine). Cette ancienne version est également liée à l'origine et je peux faire un pull pour obtenir les dernières modifications de la télécommande. Web2 a tout mon ancien historique de commit mais a divergé de manière significative de son origine. Je voudrais faire un peu de travail sur mon ancienne version web2 et ne déplacer ces modifications/correctifs que vers la version clonée "Web", donc quand je fais un push depuis le Web, je n'apporte pas de fichiers et de code obsolètes à la télécommande . L'autre développeur tire d'origine aussi potentiellement que je peux créer beaucoup de problèmes.

Donc, est-il possible de travailler sur mon ancienne version web2 puis d'aller chercher ces changements dans le web sans tirer ni fusionner et apporter du code obsolète sur le web qui devrait être propre pour l'amont?

Ou serait-il préférable que je crée une branche "test" à partir du Web puis fusionner JUSTE les différences à Web (maître) donc ne pas avoir à travailler sur l'ancienne version Web2 du tout?

+2

Essayez d'utiliser un seul repo, et peut-être garder les différents flux de travail dans des branches distinctes. Vous serez en mesure de fusionner/sélectionner les changements de cette façon, et vous ne devez faire face à un seul repo. – nwinkler

+0

@nwinkler: la seule chose qui a du sens. Je connais des gens avec une configuration similaire, mais ils ont du mal à garder la trace des changements qu'ils ont fait dans lesquels repo ... – eckes

Répondre

0

Essayez d'utiliser git fetch/rebasage dans votre répertoire web2 pour insérer tous les commits de la télécommande dans votre branche locale alors vous pouvez easilly pousser à la branche à distance sans conflit

+0

Je peux déjà tirer de la télécommande dans mon Web2 pour obtenir tous les derniers commits à distance. Je suis plus intéressé par l'utilisation de Web2 en tant que repo de test et lorsque je construis quelque chose d'utile, je le déplace vers le Web et ne valide que ces changements dans le Web pour l'amont vers l'origine distante. – Hexana

+0

Vous pouvez sélectionner les validations que vous voulez utiliser en utilisant rebase -i pour les trier, puis appuyez sur "commit number" mais l'utilisation de 2 repos différents entraînera certainement des conflits en poussant sur la branche distante. – Gryfith