Mini-mémo git
Cette page recense des commandes utiles, qui ont été utilisées au moins une fois au cours du projet. Il n'est pas exhaustif, et d'autres commandes sont à découvrir au fil des explications de ce site.
Actions de base
- Création d’un repository pour le dossier courant (récursif)
- git init
- Ajout d’un fichier aux fichiers à sauvegarder prochain commit
- git add filename
- Voir quel sont les fichiers qui seront ajoutés au prochain commit
- git status
- Sauvegarde d’un état (commit)
- git commit –m "message"
- Revenir à la dernière version sauvegardée d’un fichier
(il s'agit bien de deux tirets, séparés du nom par une espace) - git checkout -- filename
- Corriger le message du dernier commit
- git commit --amend -m "Fichier de sortie encodé en UFT8."
Configuration de git
- Lister la configuration
- git config -l
- Réécrire l’email de la configuration
- git config --global user.email mail
Gestion des dépôts distants
- Ajout du répertoire distant sous le raccourci githubrep (exemple)
- git remote add githubrep https://github.com/titanix/projet_bao.git
- Liste les répertoires distants enregistrés (alias seulement)
- git remote
- Listes les répertoires distants enregistrés (noms courts et adresse complètes)
- git remote -v
J'ai malheureusement perdu un peu de travail de cette manière :(
Commit --amend
Le commit amendé a en fait complètement supprimé de l'historique le précédent commit,
qu'il est censé modifier. Ainsi, lors du push, le dépôt distant pense que l'on "saute dans
le temps", ce qu'il n'autorise pas. Il faut donc rapatrier le code du dépôt au moyen
de la commande pull, qui est en fait un fetch (téléchargement du code) suivit d'un
merge (fusion du code local et du code téléchargé). Dans notre cas la fusion se fait sans
aucun conflit, puisqu'il n'y a eu que l'ajout d'un fichier qui n'existait pas.
Il faut finalement pousser le résultat de la fusion (c'est à dire notre commit
amendé maintenant compatible avec le dépôt distant) sur le dépot, au moyen de la commande
push.
Voici ce que cela a donné dans mon cas. Les commandes tappées dans le shell sont en police normale, tandis que les résultats sont affichés en italique.
[master 2147e59] Travail sur le contenu du site et sa présentation. 29 files changed, 541 insertions(+), 662 deletions(-) delete mode 100644 site/build/.html create mode 100644 site/build/code/build_site.pl create mode 100644 site/build/img/azure_deploy.png create mode 100644 site/content/copy/img/azure_deploy.png create mode 100644 site/content/site_perl.html
Username for 'https://github.com': louis....@....fr Password for 'https://louis....@....fr@github.com': To https://github.com/titanix/projet_bao.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'https://github.com/titanix/projet_bao.git' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes (e.g. 'git pull') before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details.
Username for 'https://github.com': louis....@....fr Password for 'https://louis....@....fr@github.com': From https://github.com/titanix/projet_bao * branch master -> FETCH_HEAD Merge made by the 'recursive' strategy.
Username for 'https://github.com': louis....@....fr Password for 'https://louis....@....fr@github.com': To https://github.com/titanix/projet_bao.git 26b4d93..80cfd76 master -> master