Guid de survie Git

Références

Mémento

Configuration globale

Pour configurer vos noms et mails, une seule fois par “machine” et depuis n’importe quel répertoire :

Ces informations seront stockées dans le fichier ~/.gitconfig (que vous pouvez aussi éditer à la main si vous préférez).

Pour éviter d’avoir à taper en permanence votre clef privée : ssh-add

Le fichier .gitignore dans la racine du dépôt permet d’ignorer certains fichiers inutiles (les *.pyc par exemple ou les *.o, *.swp, *~, …). C’est un fichier texte que vous pourrez (devrez) éditer pour le compléter.

Création de dépôt Git

L’adresse du dépôt à cloner peut être :

Voir ce qui s’est passé

Comparaisons de versions

Manipuler des fichiers

Attention : ne pas oublier le git commit après !

Enregistrement de fichiers

Le commit est enregistré à la suite de celui où pointe HEAD. Puis HEAD ainsi que l’éventuelle branche vers lequel HEAD pointait sont déplacés vers le nouveau commit.

Travailler avec un serveur distant

Si nom_du_commit est un nom de branche, cela veut dire qu’on a changé de branche. Tout nouveau commit sera ajouté à la nouvelle branche :

Si nom_du_commit est un numéro de commit, on se retrouve en mode “detached HEAD” : sur une branche qui n’a pas de nom. Tout nouveau commit sera ajouté à cette branche. Il est fortement conseillé de nommer cette branche pour pouvoir la retrouver plus tard : git branch nom_de_la_nouvelle_branche ou git checkout -b nom_de_la_nouvelle_branche

Avec les versions récentes de Git, pour éviter la confusion entre commits et branches préférez utiliser git switch pour changer de branche:

git switch nom_de_la_branche

Notes :

Attention : ^ et ~ ne veulent pas dire la même chose. Si en remontant il y a eu un merge :

Exemple : si on a un merge, HEAD~2 représente le grand père en suivant le premier parent, alors que HEAD^2 représente le deuxième parent. HEAD~~~ est équivalent à HEAD^^^ et HEAD~3, mais pas à HEAD^3.

Les branches

Rappel : dans Git, une branche est juste un pointeur vers un commit particulier. Par abus de langage, on appelle parfois “branche” l’ensemble de ce commit et de ses ancêtres.

Tout nouveau commit est ajouté à la suite de ce vers quoi pointe HEAD, et HEAD ainsi que le nom de la branche actuelle sont déplacés pour pointer sur le nouveau commit.

Cette page est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage à l’Identique 3.0 États-Unis.

Elle utilise des images issues de http://marklodato.github.io/visual-git-guide/index-fr.html.