Git est un outil de contrôle de version. Git s'est imposé aussi bien dans le monde professionnel que non professionnel. Sa conception distribuée, sa rapidité et sa flexibilité en font aujourd'hui l'outil de référence pour la gestion de versions, utilisé par plus de 90 % des équipes de développement à travers le monde.
Chaque "commit" représente l'état du projet à un moment donné. Cette approche permet une traçabilité complète des modifications, une gestion fine des branches et des fusions, ainsi qu'une grosse protection face aux pertes de données. Le concept de "repository" permet à chaque développeur de travailler de manière autonome, même hors ligne, tout en conservant l'intégralité de l'historique du projet.
Git offre beaucoup de commandes qui permettent de gérer efficacement le cycle de vie du code. Du simple suivi des modifications (staging, commit) à la gestion avancée des branches (merge, rebase, cherry-pick), en passant par la résolution de conflits et la comparaison de versions, Git fournit tous les outils nécessaires pour gérer l'évolution d'un projet.
Git est présent dans tous mes projets, professionnels ou personnels. Git est au cœur de mon quotidien en tant que développeur et me permet d'avoir toujours un point de sauvegarde de mon projet pour me protéger de la perte de données.
Git a été utilisé pour la collaboration en équipe et la qualité du code. J'ai pu créer et gérer des branches dédiées pour chaque nouvelle fonctionnalité. Cette méthode a permis à différents développeurs de travailler sur différentes parties du projet sans avoir de problèmes d'interférences.
Dans cette situation, j'ai découvert des fonctionnalités plus avancées comme le rebase et le cherry-pick, qui m'ont permis de réorganiser et de mélanger des commits d'une multitude de branches. La gestion des conflits a été facilitée par l'usage continu de Git pour résoudre les problèmes de manière transparente.
Le projet Bio Data a été aussi l'occasion de mettre en pratique mes compétences en gestion de version avec Git. Dans ce projet, l'outil a été une aide précieuse pour permettre une collaboration fluide entre les membres d'équipe. J'ai pris soin d'organiser les branches de telle façon à ne pas croiser un code sur l'autre et à faciliter la résolution en cas de conflit.
Parallèlement à ces projets de collaboration, j'ai adopté Git tout au long de mes expérimentations personnelles en développement web, mobile et embarqué. L'utilisation quotidienne de Git m'a permis de m'améliorer dans les réflexes de base et avancés ainsi que pour la résolution de situations complexes comme la résolution des conflits ou la récupération de code perdu.
Bien que maîtrisant Git, je sais qu'une simple erreur d'inattention peut rendre la suite complètement abstraite et compliquée à corriger. Chaque projet m'a mis en face de difficultés particulières, par exemple pour avoir besoin de conserver un historique de commits parfaitement lisible. Même en suivant des workflows standards tels que Git Flow il est toujours possible d'optimiser. Par exemple, le cherry-pick et le rebase peuvent être très puissants, mais parfois compliquer la suite si ce n'est pas utilisé correctement, et il faut bien connaître les subtilités de chaque commande pour éviter toute incohérence dans le dépôt de code. Mon expérience m'a appris qu'il faut être rigoureux dans l'utilisation de Git et ne pas se jeter tête baissée dans la résolution d'un problème.
J'ai également adopté une convention "Conventional Commits" pour mes commits dans mes projets personnels. Cette approche structurée de la rédaction de messages de commit facilite la compréhension rapide du travail effectué, grâce aux mises en situation, j'ai compris que la gestion de versions n'est pas simplement une question technique, mais aussi une discipline qui impacte profondément la façon dont les équipes collaborent et dont les projets évoluent. Chaque commit, chaque branche et chaque merge est considéré non seulement pour son impact immédiat, mais aussi pour sa contribution à la lisibilité et à la maintenabilité à long terme du projet.
Mon objectif est d'atteindre un niveau de 9,5/10 en Git d'ici deux ans, me rendant capable non seulement d'utiliser Git de manière avancée, mais aussi de former d'autres développeurs et d'organiser des workflows Git optimaux pour des projets de toute envergure.
Mon apprentissage en gestion de version avec Git passe par une phase d'apprentissage continu et d'expérimentation méthodique. Depuis mes tout débuts en tant que développeur, j'ai directement opté pour Git comme outil pour structurer mes projets et suivre leur évolution. Cette pratique quotidienne m'a permis de maîtriser les commandes de base et de découvrir progressivement des fonctionnalités plus avancées comme le rebase, le cherry-pick et la gestion des branches. Mon expérience sur des projets collaboratifs tels que Easy-Monithor, Easy-Check et Bio Data a considérablement renforcé mon expertise, en me mettant en situation de travail d'équipe et en m'obligeant à mettre en place des workflows structurés. Je reste à jour sur les dernières avancées grâce à une veille technologique continue.
Mon usage quotidien de Git dans diverses situations professionnelles et personnelles témoigne d'une solide maîtrise des problématiques liées à la gestion de versions. Cet outil m'a permis de structurer efficacement le travail en équipe, de suivre précisément l'évolution du code et d'améliorer la collaboration entre développeurs grâce à des flux adaptés et des conventions strictes. Conscient de l'évolution constante des pratiques, je m'engage à poursuivre cette démarche d'apprentissage continu. Chaque nouveau défi, qu'il s'agisse de restructurer l'historique d'un projet complexe ou de coordonner une collaboration multiple, est pour moi une opportunité d'améliorer mes compétences.