Une liste de commandes essentielles pour travailler avec GIT. Toutes les options et commandes sont disponible à l'adresse : https://git-scm.com/doc. Pour héberger un dépôt le service GitHub est disponible gratuitement dans la mesure ou les sources sont publiques. Les librairies utilisés pour ce site sont disponible sur mon dépôt public.
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)