
CONFIGURATION DE GIT
git config --global push.default simple : Indique à la commande « git push » de ne pousser que la branche en cours.git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" : créer un alias de log en couleur et concis, appelé par git lg
git config --global user.name "Votre Nom" : Nom affecté à tout les dépôts git de l'utilisateur
git config --global user.email "[email protected]" : émail affecté à tout les dépôts git de l'utilisateur
DÉMARRER UN DÉPÔT
git init : Démarrer git dans un répertoire qui contient déjà des fichiers.git clone user@serveur:/chemin/vers/repertoire/source -- repertoirecible : Démarre un dépôt depuis un dépôt git existant
[email protected]:Hesmo/LibJm.git : Démarre un dépôt depuis un dépôt GitHub
git clone --bare user@serveur:/chemin/vers/repertoire/source -- repertoirecible : Démarre un dépôt 'bare' depuis un dépôt git existant
git clone -l --no-hardlinks repertoiresource -- repertoirecible : Démarre un dépôt en clonant un dépôt local
SYNCHRONISER SON TRAVAIL
git remote -v : Affiche les serveurs distantsgit remote show origin : Analyse le serveur distant renvoi les branches distantes et l'interaction avec le dépôt
git fetch [Nom du dépôt] [Nom de la branche] : Récupère les dernières modifications du dépôt distant (Ne fusionne pas les infos)
git pull [Nom du dépôt] [Nom de la branche] : Récupère les dernières modifications du dépôt distant et tente une fusion
git push [Nom du dépôt] [Nom de la branche] : Envoi la version en cours vers le dépôt distant
COMMANDES COURANTES
git status : Affiche le statut des fichiers modifiés depuis le dernier commit. (Ne fonctionne pas avec un dépôt 'bare' car il n'y a pas de fichier dans un dépôt 'bare')git add [fichier] : Ajoute fichier à l'index en cours (revient à décider quelles sont les modifs qui seront dans le prochain commit)
git checkout -- [fichier] : Rétablit le fichier dans sont état du dernier commit
git rm [fichier] : Supprime le fichier
git diff : Affiche les modifications entre les modifications et l'index
git stash : Sauvegarde les modifs sans faire de commit si on veut travailler sur une autre branch sans commiter
git stash liste : Affiche toute les piles mise de cotés par la commande stash
git stash apply : Applique la dernière remise (par défaut)
git stash apply stash@{2} : Applique la remise numéro 2
TRAVAILLER AVEC LES BRANCHES
git branch -r : affiche toute les branches distantesgit branch [Nom de la branche] : Création d’une branche (avec l’option -v donne plus de détail)
git checkout -b [Nom de la branche] : Création d’une branche puis change la branche en cours
git checkout -b [Nom de la branche] [Nom du dépôt]/[Nom de la branche] : Récupère une branche depuis le dépôt
git checkout [Nom de la branche] : Change la branche en cours
git branch --merged : Affiche les branches fusionnés
git branch --no-merged : Affiche les branches non fusionnés.
git push --set-upstream [Nom du dépôt] [Nom de la branche] : Suit une branche du dépôt
git branch -d [Nom de la branche] : Supprime la branche
RENDRE SES MODIFICATIONS EFFECTIVES
git commit -m [Nom du commit] : Enregistre les modifications apportés par git add, git rm...git commit --amend : Ajoute les dernières modifications au dernier commit (si on a oublié une petite modification)
git reset --hard [hash] : Force le retour au commit indiqué par le hash (c'est hard comme son nom l'indique)
git reset [commit] : Retourne à l’état de [commit], garde les modifications des fichiers avec le statut unstaged (à ajouter avec git add). Avec l’option —hard supprime toute les modifications (à éviter) d’autres option existe (--soft --mixed (par défaut) --merge --keep). Pour revenir à un commit plus vieux que le dernier voir git revert
git merge [Nom de la branche] : Fusionne la branche dans la branche en cours. (Si on veut appliquer une branche dans la branche "master" il faut être dans la branche "master")
git rebase [Nom de la branche source] : Récupère les infos de la branche source et les applique dans la branche en cours !! Le dernier commit de master servira de racine à la branche en cours
SUIVRE LES MODIFICATIONS
git lg : Si l'allias est définit (voir section 'CONFIGURATION DE GIT' ligne 2), affiche une vue simplifié des commitsgit log : Affiche la liste des commits détaillés
git log --pretty=oneline : Affiche la liste résumée des commits (Hash et titre)