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édenteDernière révisionLes deux révisions suivantes | ||
technique:git:git_avancees [2020/04/27 22:17] – francoisa | technique:git:git_avancees [2021/09/20 21:37] – francoisa | ||
---|---|---|---|
Ligne 213: | Ligne 213: | ||
git checkout master # pour se mettre localement sur la branche master | git checkout master # pour se mettre localement sur la branche master | ||
git reset --hard upstream/ | git reset --hard upstream/ | ||
+ | git fetch upstream | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Pour récupérer des commits d' | ||
+ | |||
+ | Se placer dans la branche qui contient les anciens commits : | ||
+ | |||
+ | < | ||
+ | git checkout anciennebranche | ||
+ | git log # pour afficher les commits du plus récent au plus ancien idcommit3, idcommit2, idcommit1 | ||
+ | git checkout master # pour repasser dans la branche master | ||
+ | git checkout -b nouvellebranche # pour créer et se placer dans la nouvelle branche | ||
+ | git cherry-pick idcommit1 idcommit2 idcommit3 | ||
+ | git log # pour afficher les commits récupérés | ||
+ | git branch --track master origin/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Stocker ses accès (sur un serveur sécurisé) ===== | ||
+ | |||
+ | Editer le '' | ||
+ | |||
+ | < | ||
+ | [remote " | ||
+ | url = https:// | ||
+ | |||
+ | </ | ||
+ | |||
+ | Ceci peut être définié au moment du clone : | ||
+ | |||
+ | < | ||
+ | git clone https://< | ||
+ | |||
+ | </ | ||
+ | |||
+ | On peut aussi stocker ces infos dans les credentials ('' | ||
+ | |||
+ | < | ||
+ | git config credential.helper store # pour les activer globalement ou | ||
+ | git config --global credential.helper store # pour les activer localement dans chaque dépot | ||
+ | |||
+ | </ | ||
+ | |||
+ | Et au pull ou push suivant, les infos de connexions sont mémorisées ! | ||
+ | |||
+ | ===== Déboguer du code bugué depuis un commit inconnu ===== | ||
+ | |||
+ | git bisect permet de faire ça : Trouver par recherche binaire la modification qui a introduit un bogue. (cf [[https:// | ||
+ | |||
+ | Technique par dichotomie entre 2 commits : l'un avec le bug (bad), l' | ||
+ | |||
+ | Exemple : | ||
+ | < | ||
+ | |||
+ | git bisect start # démarrage de git bisect | ||
+ | git bisect bad # La version actuelle est mauvaise | ||
+ | git bisect good v2.6.13-rc2 # la version v2.6.13-rc2 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Et se laisser guider. | ||
+ | |||
+ | < | ||
+ | git bisect reset # pour revenir au HEAD d' | ||
+ | |||
+ | </ | ||
+ | |||
+ | Marche aussi avec un script de test qui doit renvoyer 0 pour être valide : | ||
+ | |||
+ | < | ||
+ | git bisect run mon_script arguments | ||
</ | </ | ||