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:36] – [Developpement] 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 exhaustives. En particulier, | + | Voici quelques commandes utiles. La liste n'est pas exhaustive. En particulier, |
- | Ceci est très dangereux car, si un autre développeurs | + | Ceci est très dangereux car, si un autre développeur |
+ | |||
+ | ===== 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 43: | Ligne 61: | ||
export EDITOR=emacs | export EDITOR=emacs | ||
</ | </ | ||
+ | Il faut faire la modification dans son <wrap safety> | ||
</ | </ | ||
Ligne 60: | Ligne 79: | ||
</ | </ | ||
- | ===== Developpement | + | ===== Développement |
Pour la création d'une sous-branche | Pour la création d'une sous-branche | ||
Ligne 70: | 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 91: | 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 96: | 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 | ||
Ligne 101: | Ligne 125: | ||
</ | </ | ||
- | 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 : | + | <WRAP center round tip 60%> |
<code bash> | <code bash> | ||
- | git branch --set-upstream-to=origin/ | + | git branch --set-upstream-to=origin/ |
+ | git config push.default current | ||
</ | </ | ||
- | pour intégrer les modification | + | </ |
+ | |||
+ | <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 125: | Ligne 224: | ||
{{ : | {{ : | ||
- | 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 naturelle). | + | 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' | L' | ||
{{ : | {{ : | ||
+ |
git/start.1637480189.txt.gz · Dernière modification : 2021/11/21 07:36 de felix