Interface graphique basique mais fonctionnelle : gitg
Configuration
git config --global credential.helper "cache --timeout=3600"
#pour mettre les identifiants du serveur distant en cache pendant 1h
Configuration du nom/mail enregistrés lors des commits :
git config user.name "my_username"
git config user.email "<>" (pour un mail vide)
Ça sera enregistré dans .git/config sous la forme
[user]
name = my_username
email = <>
Ça peut être configuré globalement avec git config --global
Remote
“remote” représente un serveur distant avec lequel on se synchronise. Il a un nom, typiquement “origin”.
Pour voir le remote actuel :
git remote -v
Pour le modifier :
git remote set-url origin
suivi de l’URL (généralement trouvable dans l’interface web du dépôt). Ceci peut être utilisé pour passer de HTTPS à SSH : par exemple pour une URL https de type :
origin https://git.example.org/myself/myproject/
il faut entrer la commande :
git remote set-url origin git@git.example.org:myself/myproject
On peut changer le nom du remote :
git remote rename oldname newname
Versionning
git init : crée les fichiers nécessaires au fonctionnement de git (.git/)
HEAD : l’emplacement sur l’arbre où l’on se situe actuellement
git status
git add : pour tracker un dossier, fichier (ou plus fin ?)
git commit : valide le diff, -m pour message custom
git diff : liste les modifications depuis le dernier commit (ajouter --cached si sortie vide)
git show [commit] : liste les différences entre le commit actuel (ou spécifié) et le commit précédent
git fetch : lit les nouvelles modification sur le serveur distant
git pull : applique ces modifications sur notre arborescence locale
git pull --rebase : pour ne pas faire de commmit lorsqu’on repositionne notre HEAD
git log : voir l’historique des commits
git branch : pour lister les branches (git branch new-feature pour créer une branche)
git checkout : changer de branche
git checkout -b new-feature : crée la branche new-feature et m’y positionne
git push --set-upstream origin new-feature : réplique la branche new-feature sur le serveur distant
git push : après avoir commit, envoie le(s) commit sur le serveur distant
git stash : met en “presse papier” les diffs actuel et se resync avec le commit le plus récent
git stash apply : réapplique ce “presse-papiers”
# le combo des 2 peut permettre de résoudre une situation “modifié des 2 côtés” en mettant de côté notre travail, récupérant les modifs sur le serveur distant puis réappliquant nos diff dessus