diff --git a/source/git/basics.md b/source/git/basics.md index 756a2f6fe2a1fd9e4e770aa9f4262570c28b0117..d4a5f1e2c770659fa2295b89b02a192363c2f9b9 100644 --- a/source/git/basics.md +++ b/source/git/basics.md @@ -100,7 +100,32 @@ Une fois le milestone terminé, que ce soit pour un correctif ou des évolutions ## Gestion de conflit -proc +Régulièrement lors des merges vous allez rencontrer des conflits. + + + +Il faudra alors les gérer de façon à ne pas perdre de fonctionnalités. + +Gitkraken vous permet de le gérer assez facilement : + + + +Vous pourrez voir via ce composant, quelles fichiers sont en conflit et lesquels ne le sont pas. En cliquant sur un fichier en conflit, vous arriverez sur une interface vous permettant de gérer le conflit sur ce fichier. + + + +L'interface vous présente alors les deux versions du fichiers, vous pouvez choisir le code à conserver, que ce soit le fichier entièrement, le bloc de code ou à la ligne. Vous pouvez conserver les deux versions des modifications simultanément (l'ordre de sélection sera l'ordre finale dans le fichier). +Si le merge nécessite de modifier le fichier, vous pouvez soit le faire dans un éditeur externe, soit le gérer dans la troisième version du fichier (sur la partie basse du composant gitKraken), en éditant le texte directement. Une fois le conflit gérer sur le fichier il vous suffit de cliquer sur le bouton `save` pour résoudre le conflit sur ce fichier. + +Une fois tous les fichiers gérés, vous pourrez finaliser votre commit de merge. Si vous n'êtes pas en capacité de merger, vous pouvez annuler le merge en cliquant sur `abort`. Il vous suffit alors de demander à l'autre développeur en cause dans le conflit, ou a quelqu'un avec plus d'expertise que vous sur le sujet de vous aider à résoudre le conflit. + +```{Warning} + Un conflit se manifeste dans le fichier par l'apparition de balise, en cas de mauvaise gestion du conflit (plus exactement en cas d'absence de gestion), les balises resteront et léveront des erreurs de syntaxe. + +  +``` + + ## Utilisation du gitignore Le fichier .gitignore permet de spécifier à git qu'il ne doit pas surveiller (track) certains fichiers, ça peut être un fichier en particulier, une extension de fichier, un dossier, ... diff --git a/source/git/outils.md b/source/git/outils.md index ceb236ce3b7e5b917d3180f7c89f054df99a256f..9af509481618afc1d3978f60d3520f541bac70c9 100644 --- a/source/git/outils.md +++ b/source/git/outils.md @@ -275,4 +275,5 @@ Je ne rentre pas dans le détails de ces outils car leurs utilisations actuellem - [SourceTree](https://www.sourcetreeapp.com/) : Trés similaire à GitKraken, il a moins d'intégration avec Gitlab car développer par Atlassian, le propriétaire de BitBucket - [Github Desktop](https://desktop.github.com/) : Beaucoup plus simpliste, ça fera largement l'affaire pour un utilisateur qui utilise Git rarement ou qui ne fait que des actions trés simples (pull, push, commit), pour corriger/écrire de la documentation. -- [Tortoise Git](https://tortoisegit.org/) : Pour les anciens cramponnés à SVN ou pour avoir un gestionnaire ultra léger. \ No newline at end of file +- [Tortoise Git](https://tortoisegit.org/) : Pour les anciens cramponnés à SVN ou pour avoir un gestionnaire ultra léger. +- [Git Lens](https://www.gitkraken.com/gitlens) : également développer par Axosoft, c'ets un outil complémentaire à Gitkraken, qui peut le remplacer sur des usages trés simpliste, directement dans Visual Studio Code. \ No newline at end of file diff --git a/source/images/git/code_conflict.png b/source/images/git/code_conflict.png new file mode 100644 index 0000000000000000000000000000000000000000..367fc7904ba59586b63a12494992f6d41d6c5bde Binary files /dev/null and b/source/images/git/code_conflict.png differ diff --git a/source/images/git/gk_conflict_manager.png b/source/images/git/gk_conflict_manager.png new file mode 100644 index 0000000000000000000000000000000000000000..2650f4916d290acabc63770874eb9e2655a6c904 Binary files /dev/null and b/source/images/git/gk_conflict_manager.png differ diff --git a/source/images/git/gk_conflict_manager_file.png b/source/images/git/gk_conflict_manager_file.png new file mode 100644 index 0000000000000000000000000000000000000000..caac330c1edc697b5ae0e239787ad08a4c912520 Binary files /dev/null and b/source/images/git/gk_conflict_manager_file.png differ diff --git a/source/images/git/gk_conflict_tree.png b/source/images/git/gk_conflict_tree.png new file mode 100644 index 0000000000000000000000000000000000000000..10f9c564f583e6413b3578205c7bc75c13afc107 Binary files /dev/null and b/source/images/git/gk_conflict_tree.png differ