Peut-être liée à Git - pulling changes from clone back onto the mastererreur de débutant git - comment récupérer
je travaillais sur un projet ASP.NET quand j'ai découvert que je devais faire un ensemble « expérimental » des changements qui peuvent ou non avoir été requises la version de production.
La chose la plus évidente à faire était de créer une branche.
Cependant, comme je connaissais darcs et svn, mais pas git, je suppose qu'un clone était la manière « normale » pour créer une branche (je sais maintenant que git branch
aurait été plus approprié.)
I continué à travailler sur le changement expérimental dans le clone et, en même temps, d'autres changements dans le référentiel d'origine. Depuis, j'ai découvert que les changements expérimentaux sont souhaitable dans la version de production et que vous souhaitez fusionner les deux ensembles de changements.
Si j'avais initialement fait une branche au lieu d'un clone, ce serait trivial. Je suis sûr que ce n'est pas trop difficile de fusionner entre des référentiels séparés, mais après avoir parcouru les docs je ne pense pas que cela puisse être fait avec une seule commande (un simple pull
ne fonctionne pas.)
Je n'ai pas (encore) explicitement configuré un dépôt comme un "distant" de l'autre, mais je suppose que cela fera partie de la solution.
Le référentiel amont à l'époque n'utilisait pas de VCS - c'était juste un répertoire plein de zips avec des numéros de version ajoutés aux noms de fichiers.
Je voudrais savoir:
- Quelle est la meilleure façon de fusionner les ensembles de changement à travers les dépôts? (Je ne m'attends à aucun conflit majeur.)
- À quel point est-il nocif de cloner au lieu de se ramifier? Ai-je perdu toute information en faisant cela, par ex. histoire partagée, dépendances communes?
Oui, mais conserve-t-il toutes les informations sur les différences entre les dépôts, ainsi que sur les différences entre les branches? Ou y a-t-il un plus grand risque de ne pas résoudre les conflits? – finnw
il va importer les commits de l'autre dépôt, donc oui, il aura des informations appropriées. Comme Jörg l'a dit, git a été spécialement conçu pour cela. Les gens clonent et fusionnent tout le temps, voir github.com par exemple –