Un collègue et moi travaillons tous les deux sur la branche master en ce moment. J'ai du code dans mon arbre de travail que je ne veux pas livrer (déclarations de débogage et autres). Maintenant, s'il modifie certains de ces fichiers, je ne peux pas les fusionner :
$ git merge origin/master
Updating 1b8c5c6..eb44c23
error: Entry 'blah.java' not uptodate. Cannot merge.
Venant d'un milieu subversion, je suis habitué à ce que mon arbre de travail soit automatiquement fusionné lorsque je tire des modifications du référentiel et, s'il y a des conflits, je les résous manuellement.
La méthode la plus rapide que j'ai trouvée pour faire cela dans git est la suivante :
$ git stash
$ git merge origin/master
$ git stash pop
Il s'agit essentiellement de supprimer mes modifications non validées, d'effectuer la fusion et de réappliquer les modifications. Comment puis-je demander à merge de fusionner automatiquement mon arbre de travail avec les modifications que j'essaie d'intégrer ?
3 votes
Que faire en cas de conflit de fusion ? Que se passe-t-il si vous avez des conflits de fusion dans des fichiers sales (fichiers que vous avez modifiés) ? Voir aussi "Fun with keeping local changes around" sur le blog de Junio C Hamano (git maintainer) : gitster.livejournal.com/29060.html
0 votes
Merci pour le lien. Encore une fois, la grande majorité du temps, je ne m'attends à aucun conflit ou à des conflits très mineurs que je n'ai pas de mal à résoudre à la main. Je cours le même risque de conflit si je livre mes fichiers sales de toute façon, sauf que je dois ensuite me donner la peine de les décommander.
0 votes
Question connexe : stackoverflow.com/questions/18529206/
0 votes
Le problème de l'utilisation des réserves est que
MERGE_HEAD
est effacé, ce qui fait que seule la dernière fusion est enregistrée. Pour que la révision de la fusion conserve tous les parents, vous devez mettre de côté une copie de.git/MERGE_HEAD
avant l'exécutiongit stash
. Il faut ensuite combiner tous lesMERGE_HEAD
ensemble (un SHA par ligne) avant la livraison finale.0 votes
Vous pouvez ajouter un
git fetch origin master
avant lemerge
.