====== Memo commandes git ====== ===== Base ===== * ''git clone url_du_depot'' : on récupère les fichiers du dépot * ''git log'' / ''git log -S'text''' : Voir les logs, faire une recherche dans les logs * ''git branch'' : voir les branches en local * ''git branch -r'' : voir les branches distantes (remote) * ''git branch -d'' : supprimer une branche locale * ''git branch -D'' : force la suppression de la branche locale même si elle existe encore en remote * ''git branch -m nouveau_nom_branche'' : renomme la branche locale * ''git checkout nom_branche'' : on se positionne sur la branche nom_branche du stage * ''git checkout -b nom_branche'' : on se positionne sur la branche nom_branche du stage, si elle n'existe pas on la crée * ''git status'' : voir les fichiers modifiés * ''git diff'' : détails des lignes modifiées * ''git push origin nom_branche'' : envoyer les commit en stage sur le remote ===== Mettre à jour sa branche locale si le master a divergé ===== * ''git fetch origin'' : on récupère toutes les modifs distantes pour les ajouter dans le stage * ''git checkout master'' : on se remet sur master * ''git merge --ff-only origin master'' : on met à jour la branche master / on merge le master local avec le master de stage * ''git checkout nom_branche'' * ''git rebase master'' : on rebase nom_branche pour qu'elle récupère les modifs de master ===== Corriger un commit ===== * On corrige le code * On commit * On affiche les x dernier commits avec ''git rebase -i HEAD~x'' (le plus vieux est en premier) * '':d'' sur la ligne sur ligne du commit de fix, on renomme ''pick'' en ''fixup'' et colle la ligne sous le commit qu'on corrige / ''i'' pour le mode interactif sur vim * '':wq'' pour enregistrer et quitter * ''git push origin nom_branche --force'' ===== Résolution des conflits de merge ===== * ''git fetch origin'' * ''git checkout master'' * ''git merge --ff-only origin/master'' * ''git checkout mabranche'' * ''git rebase master'' * Ouvrir le(s) fichier(s) concerné(s) dans l'éditeur pour accepter le bon changement puis enregistrer * ''git add .'' (ou passer par git-cola pour pré-commiter : ON NE COMMIT PAS) * ''git rebase --continue'' (''--abort'' pour annuler) * ''git push origin mabranche --force''