Bonjour bonjour!
Jusqu'ici je travaillait avec git submodule, et je suis en train de me mettre a git subtree, vue comme la communauté en fait les louanges.
A l'usage sur un projet de test j'ai rapidement vue l’intérêt de la maintenance des librairies évoluant a l’extérieur d'un projet..mais qu'en est il des améliorations apporter à l’intérieur d'un projet ?
Exemple:
Chien
--poiles
--canine
--queue
Chat
--poiles
--canine
--queue
Je travail dans le sous module "poile" du projet "chien". Une foi terminé, je pousse tout sa sur le serveur dans la branche master.
En suite je vais dans chat, je travaille aussi sur le poile, je commit, et je push. Je veut maintenant apporter les amélioration que j'ai fait dans chien. Je bascule sur la pranche poile, je "pull", je retourne sur la branche master, et je merge avec la branche poile.
Sois la succession de commande suivante:
Et je regarde le résultat: mon chat n'est plus doux et soyeux! si je le mouille, il ne frise plus, mais le merge avec la version distante mon écrasé les amélioration que j'ai fait localement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $: cd ./chien #on travail dans la subtree "poile" du projet chien $chien :git commit -am "fix: les poiles ne frise plus au contact de l'eau" $chien :git push origin master $chien :cd ../chat #on travail dans la subtree "poile" du projet chat $chat : git commit -am "les poiles sont maintenant doux et soyeux" $chat :git checkout branch_poile $chat: git pull $chat :git checkout master $chat : git merge --squash -s subtree --no-commit branch_poile
Est-ce le comportement normal, ou est-je oublié une étape?
Si c'est le comportement normal, pourquoi? Quel est l'axe de travail qui nous est imposé ici? Et du coup peut on vraiment parler de "merge" ?
Voila ce que j'ai trouvé si je veut conserver les modif en question:
je doit passé dans branch_poile, merger avec master, puis tirer la version du serveur, repassé sur master, puis enfin merger branch_poile...ouf !
Je trouve sa très dangereux: il faut donc absolument merger systématiquement toute les modifications faite localement dans les branch des subtree, sous pêne de perdre du travaille plus tard sans même s'en apercevoir ! Il suffit d'un oublie...
Correct ou y a t'il une autre stratégie a adopté?
Partager