prog:git
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| prog:git [2025/11/21 13:24] – Réorganisation complète root | prog:git [2025/11/24 11:32] (Version actuelle) – Ajout de "Retravailler l'historique" root | ||
|---|---|---|---|
| Ligne 185: | Ligne 185: | ||
| ====Supprimer un submodule==== | ====Supprimer un submodule==== | ||
| - | * '' | + | <code bash> |
| - | * '' | + | git submodule deinit < |
| - | * '' | + | git rm < |
| - | * '' | + | git commit -m " |
| + | rm -rf .git/ | ||
| + | </ | ||
| [[https:// | [[https:// | ||
| Ligne 682: | Ligne 684: | ||
| Exemple [[https:// | Exemple [[https:// | ||
| - | |||
| - | Avantages : | ||
| - | |||
| - | - Si 2 librairies dépendent d'une 3ème, la 3ème est forcément à la même version. | ||
| - | - Il est difficile pour chaque dépôt de connaitre la version de ses dépendances. | ||
| Inconvénients : | Inconvénients : | ||
| - | - Nécessite un super projet pour compiler. Au choix : soit un super projet qui clone tout, soit un super projet par projet à compiler. | + | - Nécessite un super projet pour compiler. Au choix : soit un super projet qui clone tout (Boost), soit un super projet par projet à compiler. |
| - | - Risque de dépendances | + | - Dépendances |
| * Submodule dans chaque projet | * Submodule dans chaque projet | ||
| - | Avantages et inconvénients inversés par rapport à la solution précédente. | + | Inconvénients : |
| + | |||
| + | - Clonage récursif infini si dépendances circulaires. | ||
| + | - Si 2 librairies dépendent d'une même 3ème, | ||
| * Gestionnaire externe (vcpkg) | * Gestionnaire externe (vcpkg) | ||
| Ligne 701: | Ligne 701: | ||
| Inconvénients : | Inconvénients : | ||
| - | - Nécessite de gérer la version des paquets. Peut être pénible pendant la phase de developpement ou nécessite | + | - Travail supplémentaire pour maintenir les ports vcpkg. Dans le cas de vcpkg, il faut créer un port par branche de dev et l' |
| + | - Si on travaille sur des dépendances, | ||
| + | |||
| + | ====Rebase / amend / force push==== | ||
| + | |||
| + | Faut-il autoriser les rebases ou non ? Il y a 2 parties irréconciliables : avoir un arbre git propre (et autoriser les rebases) et avoir un arbre qui mémorise l' | ||
| + | |||
| + | ===Retravailler l' | ||
| + | |||
| + | * Sur les branches de développement | ||
| + | |||
| + | Je suis pour les modifications. C'est un espace de travail et de bac à sable qui peut être utilisé pour tester le code sur la CI. De plus, ça permet de sauvegarder le code quotidiennement et de voir l' | ||
| + | |||
| + | ⚠️ Autoriser de retravailler une branche interdit de se greffer sur une branche de développement d'un dépôt enfant. La branche de développement de l' | ||
| + | |||
| + | Par contre, il ne faut fusionner que les commits qui concerne une même tâche et ne pas fusionner tout l' | ||
| + | |||
| + | * Modifier le commit de base d'une racine | ||
| + | |||
| + | Lors d'un merge, il faut utiliser '' | ||
| + | |||
| + | L' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Mais plutôt d' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Oui, c'est plus joli. Mais est-ce c'est nécessaire de l' | ||
| + | |||
| + | Si beaucoup de personnes travaillent en même temps sur le projet, l' | ||
| + | |||
| + | S'il n'y a pas de conflit lors du merge, ne pas l' | ||
| + | |||
| + | En cas de conflit lors du merge, il ne faut pas résoudre le conflit en local avant de merger. Sinon, la résolution des conflits seront dans le commit de merge et c'est contre-intuitif de lire le commit de merge pour lire les modifications. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Il faut appliquer la technique de Gitlab avec le double merge. On merge la branche de destination vers la branche de dev pour résoudre les conflits puis on merge la branche de dev vers la branche de destination. Il y a toujours un commit de merge qui contient la résolution des conflits mais il est séparé du commit de merge final. | ||
| - | Avantages | + | {{:prog: |
| - | - Version commune | + | On peut aussi faire des rebases régulièrement afin d' |
| =====Messages d' | =====Messages d' | ||
prog/git.1763727893.txt.gz · Dernière modification : de root
