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