git-sous-arborescence de tirer des complications

Nous avons essayé d'obtenir git-sous-arborescence de travail sur un projet (avec git version 1.7.9.4) et ont eu un peu de complication. Quelqu'un d'autre précédent, a ajouté le sous-arbre avec cette commande il y a quelques mois:

git subtree add --prefix=foo [email protected]:foo.git master

Maintenant, il y a eu des changements de fond à foo et nous tenons à fusionner ces changements, idéalement à l'écraser. Aucun fichier n'a été modifié depuis qu'ils ont été importés.

J'ai essayé trois choses pour essayer de fusionner les modifications.

Première:

git subtree pull --squash -P foo [email protected]:foo.git master

Qui lève l'exception: Can't squash-merge: 'foo' was never added.

Deuxième:

git subtree pull -P foo [email protected]:foo.git master

Cela fonctionne (un peu), mais a la question de tirer dans tous les commits et a des conflits avec les fichiers qui ont été modifiés.

Enfin, j'ai essayé ceci:

git pull --squash -s subtree [email protected]:foo.git  master

Cela me donne le résultat souhaité, avec la sortie Automatic merge went well; stopped before committing as requested et de tous les dossiers montrant tel que modifié (avec le bon contenu).

Idéalement, j'aimerais continuer à utiliser la première git-subtree version et obtenir un résultat proche de la dernière version. Si nous devons utiliser la dernière version de constamment aller de l'avant, nous le ferons, mais je suis un peu confus quant à pourquoi le dernier ne produit pas de conflits de fusion alors que celui du milieu n'.

Toute aide est appréciée.

OriginalL'auteur David H. Clements | 2012-03-19