Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
fr:informatics:utilisez_git_pour_gerer_vos_versions [09/06/2024 11:07] Keuronde [Principe de base de fonctionnement] |
fr:informatics:utilisez_git_pour_gerer_vos_versions [09/06/2024 16:12] (Version actuelle) Keuronde [Ressources externe] |
||
|---|---|---|---|
| Ligne 4: | Ligne 4: | ||
| Git est un système de gestion de versions. Il permet de sauvegarder et de récupérer une version passée d'un fichier ou d'un projet complet. Git permet également de partager une modification. | Git est un système de gestion de versions. Il permet de sauvegarder et de récupérer une version passée d'un fichier ou d'un projet complet. Git permet également de partager une modification. | ||
| + | |||
| + | Le but de ce document n'est pas d' | ||
| ==== La structure de git ==== | ==== La structure de git ==== | ||
| Ligne 9: | Ligne 11: | ||
| Git est organisé en dépôt. Chaque dépôt va contenir un projet avec son historique et les différentes évolutions en cours de développement. | Git est organisé en dépôt. Chaque dépôt va contenir un projet avec son historique et les différentes évolutions en cours de développement. | ||
| - | Lorsque vous avez un dépôt pour travailler sur votre ordinateur, vous avez de visible le // | + | Lorsque vous avez un dépôt pour travailler sur votre ordinateur, vous avez de visible le // |
| Dans le répertoire de travail, chaque fichier peut avoir 3 états : | Dans le répertoire de travail, chaque fichier peut avoir 3 états : | ||
| * **Modifié** : Cette version du fichier n' | * **Modifié** : Cette version du fichier n' | ||
| * **Indexé** : Le fichier a été ajouté à la zone d' | * **Indexé** : Le fichier a été ajouté à la zone d' | ||
| - | * **Validé** : La version de ce fichier fait parti de l' | + | * **Validé** : La version de ce fichier fait partie |
| - | A la fois pour sauvegarder son projet et pour travailler en équipe, il est courant d' | + | À la fois pour sauvegarder son projet et pour travailler en équipe, il est courant d' |
| * Forjego | * Forjego | ||
| * Gitea | * Gitea | ||
| Ligne 35: | Ligne 37: | ||
| Sous Linux, prenez la version dans votre distribution. Sur les dérivées de Debian : | Sous Linux, prenez la version dans votre distribution. Sur les dérivées de Debian : | ||
| - | `apt get install git` | + | < |
| - | Sous Windows, installez | + | Sous Windows, installez [[https:// |
| Sous Mac, lancez ' | Sous Mac, lancez ' | ||
| Ligne 43: | Ligne 45: | ||
| ==== Créer un dépôt ==== | ==== Créer un dépôt ==== | ||
| - | === A partir du répertoire d'un projet === | + | === À partir du répertoire d'un projet === |
| - | git init | + | < |
| - | === A partir d'un dépôt existant === | + | === À partir d'un dépôt existant === |
| Pour cloner un dépôt : | Pour cloner un dépôt : | ||
| - | git clone <adresse du dépôt> | + | < |
| ==== État du dépôt ==== | ==== État du dépôt ==== | ||
| - | git status | + | < |
| La commande indique quelle branche est active, les fichiers modifiés, ceux ajoutés à l' | La commande indique quelle branche est active, les fichiers modifiés, ceux ajoutés à l' | ||
| Ligne 62: | Ligne 64: | ||
| ==== Ajouter un fichier à l' | ==== Ajouter un fichier à l' | ||
| - | + | < | |
| - | git add < | + | |
| ==== Valider les modifications ==== | ==== Valider les modifications ==== | ||
| - | git commit | + | < |
| La commande "git commit" | La commande "git commit" | ||
| Ceux qui sont pressés utiliseront la commande : | Ceux qui sont pressés utiliseront la commande : | ||
| - | git commit -a -m "< | + | < |
| Cette commande ajoute tous les fichiers modifiés à l' | Cette commande ajoute tous les fichiers modifiés à l' | ||
| - | |||
| ==== Identification des versions ==== | ==== Identification des versions ==== | ||
| Ligne 81: | Ligne 81: | ||
| === Les tags === | === Les tags === | ||
| - | Les _tags_, ou étiquettes en français, permettent d' | + | Les //tags//, ou étiquettes en français, permettent d' |
| === Les branches === | === Les branches === | ||
| - | Comme les tags, les branches permettent d' | + | Comme les tags, les branches permettent d' |
| Sur un projet comme tel qu'un robot, deux ou trois branches sont suffisantes : | Sur un projet comme tel qu'un robot, deux ou trois branches sont suffisantes : | ||
| - | - La branche principale, contient le code testé et validé. | + | * La branche principale, contient le code testé et validé. |
| - | - La branche de test, contient le code qui a pu être testé. | + | |
| - | - la branche de développement, | + | |
| Les deux dernières branches pouvant n'en être qu' | Les deux dernières branches pouvant n'en être qu' | ||
| Ligne 97: | Ligne 97: | ||
| L' | L' | ||
| - | _Dans le cadre de la coupe, vous développez une nouvelle stratégie, branche *strat-v2*. Vous n' | + | // |
| + | |||
| + | ==== Que suivre avec Git et que ne pas suivre avec Git ==== | ||
| + | === A suivre avec Git === | ||
| + | * Votre code | ||
| + | * Votre système de compilation (Makefile, cmake) si vous le personnalisez | ||
| + | |||
| + | === A ne pas suivre avec Git === | ||
| + | * Les fichiers temporaires - tels que les sauvegardes automatiques de votre éditeur de texte | ||
| + | * Les fichiers intermédiaires de compilation | ||
| + | |||
| + | Pour éviter que git vous signale encore et encore ces fichiers comme non-suivis, créez un fichier .gitignore dans lequel vous indiquerez la liste des fichiers et répertoires à ignorer. [[https:// | ||
| ==== Les bonnes pratiques ==== | ==== Les bonnes pratiques ==== | ||
| Ligne 103: | Ligne 114: | ||
| Voici quelques bonnes pratiques dans le cadre d'un petit projet. | Voici quelques bonnes pratiques dans le cadre d'un petit projet. | ||
| + | * Un commit toutes les deux heures - surtout la nuit | ||
| + | * Envoyer tous les jours le code sur un dépôt distant | ||
| + | * Au moins deux branches sur le dépôt local : une avec le code qui marche, une sur laquelle vous travaillez | ||
| + | |||
| + | ==== Ressources externe ==== | ||
| + | Si vous devez n'en retenir que trois, prenez celles-ci: | ||
| - | Ressources externe | + | * [[https:// |
| - | ================== | + | * [[https:// |
| + | * [[https:// | ||
| - | - [La documentation dont cet article s'est inspiré](https://git-scm.com/book/fr) | + | Autres ressources : |
| - | - [Utilisation des branches - en anglais](https://nvie.com/posts/ | + | * [[https://vincentdubroeucq.com/apprendre-git-partie-1/|Vincent Dubroeucq |
| + | * [[https:// | ||
| + | * [[https://vincentdubroeucq.com/apprendre-git-partie-3-travailler-avec-un-depot-distant/|Vincent Dubroeucq - dépôts distants]] | ||
| - | - [Vincent Dubroeucq - Les base](https:// | + | Pour s' |
| - | - [Vincent Dubroeucq - Les branches](https://vincentdubroeucq.com/apprendre-git-partie-2-les-branches/ | + | * [[https://learngitbranching.js.org/? |
| - | - [Vincent Dubroeucq - dépots distants](https:// | + | |