git:start
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
git:start [2021/11/21 07:53] – [Developpement] felix | git:start [2022/10/20 17:18] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 3: | Line 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 ===== | ||
Line 43: | Line 61: | ||
export EDITOR=emacs | export EDITOR=emacs | ||
</ | </ | ||
+ | Il faut faire la modification dans son <wrap safety> | ||
</ | </ | ||
Line 60: | Line 79: | ||
</ | </ | ||
- | ===== Developpement | + | ===== Développement |
Pour la création d'une sous-branche | Pour la création d'une sous-branche | ||
Line 70: | Line 89: | ||
On obtient la structure suivante | On obtient la structure suivante | ||
+ | |||
< | < | ||
master | master | ||
Line 76: | Line 96: | ||
</ | </ | ||
- | 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 | ||
Line 91: | Line 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 | ||
Line 96: | Line 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 | ||
Line 101: | Line 125: | ||
</ | </ | ||
- | <WRAP center round tip 60%> | + | <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 : |
- | 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> | <code bash> | ||
git branch --set-upstream-to=origin/ | git branch --set-upstream-to=origin/ | ||
+ | git config push.default current | ||
</ | </ | ||
+ | |||
</ | </ | ||
- | <WRAP center round tip 60%> | + | <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 : |
- | 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> | <code bash> | ||
git config pull.rebase false | git config pull.rebase false | ||
</ | </ | ||
- | Dans ce cas, il pourra identifier des conflits qui seront signaler dans les sources (ça les rend invalides tant qu'un humain n'a pas fait es corrections nécessaires). | ||
- | </ | ||
- | pour intégrer les modification | + | 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 ===== | ||
Line 135: | Line 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.1637481228.txt.gz · Last modified: 2021/11/21 07:53 by felix