Outils pour utilisateurs
git:start
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 | ||
| git:start [2021/11/21 07:08] – [Quelques commandes utiles] felix | git:start [2022/10/20 17:18] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| Git est un outil de dépôt de logiciel. Il s' | Git est un outil de dépôt de logiciel. Il s' | ||
| - | ~~MULTI_PLUGIN_OPEN~~ | + | |
| ??? Comment déposer mes sources sur votre git ? | ??? Comment déposer mes sources sur votre git ? | ||
| !!! | !!! | ||
| Nous réservons cette fonction aux kaznautes (toujours dans le souci de localiser les données au plus proche des utilisateurs). | Nous réservons cette fonction aux kaznautes (toujours dans le souci de localiser les données au plus proche des utilisateurs). | ||
| - | Si vous souhaitez avoir un compte sur notre git, envoyez nous un courriel à [[contact@kaz.bzh|]] | + | Si vous souhaitez avoir un compte sur notre git, envoyez-nous un courriel à [[contact@kaz.bzh|]] |
| ??? | ??? | ||
| - | ~~MULTI_PLUGIN_CLOSE~~ | + | |
| ====== Quelques commandes utiles ====== | ====== Quelques commandes utiles ====== | ||
| + | |||
| + | Voici quelques commandes utiles. La liste n'est pas exhaustive. En particulier, | ||
| + | Ceci est très dangereux car, si un autre développeur a entre-temps fait des mises à jour les changements incrémentaux n' | ||
| + | |||
| + | ===== Principe ===== | ||
| + | |||
| + | GIT est un moyen pour les développeurs de gérer des versions de leurs sources. | ||
| + | On distingue : | ||
| + | * une base de données sur un ou des serveurs (remote) | ||
| + | * une base de données locale chez chaque développeur (local) | ||
| + | {{ : | ||
| + | |||
| + | Voici 4 familles de commande GIT suivant le sens de déplacement des données : | ||
| + | * (1) copie une branche de la BD locale vers le répertoire courant | ||
| + | < | ||
| + | * (2) copie du répertoire courant vers une branche de ta BD locale. | ||
| + | < | ||
| + | * (3) copie du serveur vers le répertoire courant | ||
| + | < | ||
| + | * (4) copie du répertoire courant vers le serveur | ||
| + | < | ||
| ===== Initialisation ===== | ===== Initialisation ===== | ||
| Ligne 40: | Ligne 61: | ||
| export EDITOR=emacs | export EDITOR=emacs | ||
| </ | </ | ||
| + | Il faut faire la modification dans son <wrap safety> | ||
| </ | </ | ||
| Ligne 57: | Ligne 79: | ||
| </ | </ | ||
| - | ===== Developpement | + | ===== Développement |
| Pour la création d'une sous-branche | Pour la création d'une sous-branche | ||
| Ligne 67: | Ligne 89: | ||
| On obtient la structure suivante | On obtient la structure suivante | ||
| + | |||
| < | < | ||
| master | master | ||
| └── develop | └── develop | ||
| - | └── develop-moi | + | └── develop-perso |
| </ | </ | ||
| - | On peut créer des répertoires et des fichiers | + | On peut créer des répertoires et des fichiers, ils ne seront pas affectés |
| On peut ajouter des fichiers avec la commande suivante (la tabulation complète avec les fichiers pas encore dans le git) : | On peut ajouter des fichiers avec la commande suivante (la tabulation complète avec les fichiers pas encore dans le git) : | ||
| + | |||
| <code bash> | <code bash> | ||
| git add mon-fichier | git add mon-fichier | ||
| </ | </ | ||
| - | A tout moment, on peut synchroniser les fichiers avec la référence | + | A tout moment, on peut synchroniser les fichiers avec la référence |
| <code bash> | <code bash> | ||
| git commit -a | git commit -a | ||
| Ligne 88: | Ligne 113: | ||
| Une fois que le code est satisfaisant, | Une fois que le code est satisfaisant, | ||
| + | |||
| <code bash> | <code bash> | ||
| git push origin develop | git push origin develop | ||
| Ligne 93: | Ligne 119: | ||
| Avant de modifier une branche pensez à synchroniser votre branche avec la dernière version du serveur : | Avant de modifier une branche pensez à synchroniser votre branche avec la dernière version du serveur : | ||
| + | |||
| <code bash> | <code bash> | ||
| git fetch -a | git fetch -a | ||
| - | git pull | + | git pull une-branche |
| </ | </ | ||
| - | pour intégrer les modification | + | <WRAP center round tip 60%> Pour ne pas à avoir à indique quel branche vous voulez charger, vous pouvez indiquer que votre branche locale suit les mis-à-jour d'une branche distante : |
| + | |||
| + | <code bash> | ||
| + | git branch --set-upstream-to=origin/ | ||
| + | git config push.default current | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | <WRAP center round tip 60%> De même si vous acceptez en cas de conflit que git fasse le mélange les modifications des autres avec votre version actuelle, vous pouvez indiquer ce paramètre par défaut : | ||
| + | |||
| + | <code bash> | ||
| + | git config pull.rebase false | ||
| + | </ | ||
| + | |||
| + | Dans ce cas, il pourra identifier des conflits qui seront signalés dans les sources (ça les rend invalides tant qu'un humain n'a pas fait des corrections nécessaires). </ | ||
| + | |||
| + | pour intégrer les modifications | ||
| <code bash> | <code bash> | ||
| git merge une-branche-avec-de-nouvelles-fonctions | git merge une-branche-avec-de-nouvelles-fonctions | ||
| </ | </ | ||
| - | Pour réinitialisé | + | Pour réinitialiser |
| <code bash> | <code bash> | ||
| git reset --hard HEAD | git reset --hard HEAD | ||
| </ | </ | ||
| + | |||
| + | |||
| + | Si vous êtes plusieurs développeurs, | ||
| + | |||
| + | Mais git vous le signale avec le motif suivant : | ||
| + | < | ||
| + | <<<<<<< | ||
| + | votre code | ||
| + | ======= | ||
| + | Autre code | ||
| + | >>>>>>> | ||
| + | </ | ||
| + | |||
| + | Prenons l' | ||
| + | <code c++> | ||
| + | int i; // une variable | ||
| + | </ | ||
| + | |||
| + | Vous avez modifié votre branche <wrap safety> | ||
| + | <code c++> | ||
| + | int j; // compteur de brouzouf (avant c' | ||
| + | </ | ||
| + | |||
| + | Sur le site une modification a été enregistrée | ||
| + | <code c++> | ||
| + | int j; // compteur de brouzouf (modif dans develop) | ||
| + | </ | ||
| + | |||
| + | Au moment de <wrap safety> | ||
| + | < | ||
| + | Fusion automatique de test.c | ||
| + | CONFLIT (contenu) : Conflit de fusion dans test.c | ||
| + | La fusion automatique a échoué ; réglez les conflits et validez le résultat. | ||
| + | </ | ||
| + | L' | ||
| + | {{ : | ||
| + | |||
| + | Voici quelques commandes utiles : | ||
| + | < | ||
| + | key | ||
| + | --- | ||
| + | C-c ^ n smerge-next | ||
| + | C-c ^ p smerge-prev | ||
| + | C-c ^ u smerge-keep-upper | ||
| + | C-c ^ l smerge-keep-lower | ||
| + | C-c ^ a smerge-keep-all | ||
| + | C-c ^ RET smerge-keep-current | ||
| + | C-c ^ C smerge-combine-with-next | ||
| + | </ | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | Pour rechercher les conflits faire | ||
| + | <code bash> | ||
| + | git diff --name-only --diff-filter=U | ||
| + | </ | ||
| + | ou | ||
| + | <code bash> | ||
| + | find . -type f -exec grep -q "<<<<<<<" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| ===== Fusion ===== | ===== Fusion ===== | ||
| Ligne 115: | Ligne 222: | ||
| + | {{ : | ||
| + | |||
| + | Ensuite vous remplissez le formulaire en indiquant à gauche la branche de destination et à droite la branche qui contient modifications récentes (le sens n'est pas naturel). | ||
| + | {{ : | ||
| + | |||
| + | L' | ||
| + | {{ : | ||
git/start.1637478520.txt.gz · Dernière modification : 2021/11/21 07:08 de felix
