ComprendreUnderstanding
- ComprendreUnderstanding
Pourquoi Git est cool ?Why Git is cool?
Parce que grace à Git vous pouvez travailler sur plusieurs partie du projet de façon complètement isolée les unes des autres. Ça c'est la partie décentralisée de Git. Because with Git you can work on many part of some project totally independently. This is the true efficiency of decentralisation.
Toutes les branches locales utilisent le même répertoire. Ainsi on peu changer de branche très aisément et rapidement. On peut aussi changer de branche alors que certains fichier sont en cours de modifications. On peut même pousser le vice jusqu'à modifier un fichier, changer de branche, commiter une partie seulement des modifications de ce fichier dans la branche courante. Revenir dans l'ancienne branche et commiter à nouveau les modifications restantes. Et merger dans une troisième branche les deux modifications. Each branch use the same directory. Then you can easily change your branch. You can also change branch when some files are modified. You can then dispatch your work on many different branches and merge them on one master branch at will.
Avec la command git rebase on peut après coup, décider que certaines modifications devaient aller dans certaines branches, que d'autres ne servaient à rien. C'est une commande vraiment très puissante pour organiser l'historique.
Using the git rebase you can decide which modifications should be forget or merged into only one modification.
En pratique, qu'est-ce que ça signifie ? Mieux qu'avec tous les autres systèmes de versions, vous pouvez utiliser Git pour vous concentrer sur votre code. En effet, on peut envoyer les commits après avoir coder. Par exemple, vous pouvez coder sur la résolution du bug b01, du bug b02 et de la feature f03. Puis ensuite, vous pouvez créer une branche par bug et par feature. Puis commiter les modifications pour chaque branche et chaque feature. Puis finalement merger tous les modifications dans la branche principale. What does it mean for real usage? You can focus on coding. For example, you can code, a fix for bug b01 and for bug b02 and code a feature f03. Once finished you can create a branch by bug and by feature. And finally you can merge these modifications on a main branch.
Tout a été pensé pour vous permettre de coder d'abord, puis de vous occuper du système de version plus tard. Bien entendu, faire des commit atomique au fur et à mesure du code permet de gagner du temps et de ne pas trop s'embêter pour organiser les branches. Mais rien ne vous y oblige. Par contre faire la même chose dans d'autres systèmes de versions n'est absolument pas naturel. All was done to code and decide how to organize your versions after. In other VCS it is not as natural as in Git.
Avec Git vous pouvez aussi dépendre de plusieurs sources. Ainsi, plutôt que d'avoir un serveur centralisé, vous pouvez avoir plusieurs sources. Vous pouvez définir ce genre de chose très finement. With Git you can depend of many different sources. Then, there is not necessarily a 'master' repository where everybody puts its modifications.
Ce qui change le plus avec Git c'est la vision d'un projet centralisé sur un serveur avec plusieurs personnes qui travaillent dessus. Avec Git plusieurs personnes peuvent travailler sur le même projet, mais sans nécessairement avoir un repository de référence. On peut très facilement résoudre un bug et envoyer le patch à plein d'autres versions du projet. What changes the most with Git when you come from SVN, it's the idea of a centralized project on one server. With Git many people could work on the same project but not necessarily on the same repository as main reference. One can easily fix a bug and send a patch to many different versions of a project.