|
@@ -0,0 +1,71 @@ |
|
|
|
|
|
# Cours Python E2L - 16 mai 2020 - par internet |
|
|
|
|
|
|
|
|
|
|
|
# Git - 2ème partie |
|
|
|
|
|
|
|
|
|
|
|
## Notes |
|
|
|
|
|
|
|
|
|
|
|
Ces notes accompagnent la vidéo disponible sur le site de l'E2L. |
|
|
|
|
|
|
|
|
|
|
|
* 13:56 |
|
|
|
|
|
|
|
|
|
|
|
Dit autrement, si `foo.py` et `bar.py` ont le même contenu, il n'y aura |
|
|
|
|
|
qu'un seul "blob" pour ce contenu. (et un tree à deux éléments) - |
|
|
|
|
|
On appelle ce phénomène une *déduplication*. |
|
|
|
|
|
|
|
|
|
|
|
Une autre optimisation consiste à stocker des *différences*. Par exemple, si le mardi foo.py contient 3 lignes, et le mercredi seule la 2ème ligne |
|
|
|
|
|
a changé, git ne stockera qu'une ligne au lieu de 3) |
|
|
|
|
|
|
|
|
|
|
|
Git combine tout cela pour faire des *packs*, mais c'est un poil complexe donc |
|
|
|
|
|
je vais pas rentrer trop dans les détails. |
|
|
|
|
|
|
|
|
|
|
|
* 17:11 |
|
|
|
|
|
|
|
|
|
|
|
`git log` peut s'utiliser avec plein d'options. On peut aussi utiliser |
|
|
|
|
|
`got log -p` pour voir les modifications apportées par chaque commit, |
|
|
|
|
|
avec en rouge ce qui a été supprimé, et en vert ce qui a été |
|
|
|
|
|
rajouté. |
|
|
|
|
|
|
|
|
|
|
|
* 18:36 |
|
|
|
|
|
|
|
|
|
|
|
Certains forges autorisent même d'avoir des permissions spécifiques à certaines branches. |
|
|
|
|
|
|
|
|
|
|
|
* 28:52 |
|
|
|
|
|
|
|
|
|
|
|
Ma langue a fourché: |
|
|
|
|
|
|
|
|
|
|
|
* les changements dans "Staged Changes" en bas feront partie du prochain commit |
|
|
|
|
|
* les changements dans "Unstaged Changes" en haut ne feront pas partie du prochain commit. |
|
|
|
|
|
|
|
|
|
|
|
* 29:56 |
|
|
|
|
|
|
|
|
|
|
|
Précision: `git branch` sans arguments liste toutes les branches locales. La branche courante |
|
|
|
|
|
est représentée par une étoile en début de ligne et une couleur différente. |
|
|
|
|
|
|
|
|
|
|
|
* 30:10 |
|
|
|
|
|
|
|
|
|
|
|
Nommer des choses en informatique c'est toujours compliqué - que ce soit les noms |
|
|
|
|
|
de variables, de fonctions de classes ou de branches :P |
|
|
|
|
|
|
|
|
|
|
|
* 41:07 |
|
|
|
|
|
|
|
|
|
|
|
Un point important que j'ai oublié de mentionner : la commande `pull` qu'on a utilisé |
|
|
|
|
|
est simplement une combinaison de `fetch` puis `merge`, en tout cas dans les cas simples. |
|
|
|
|
|
|
|
|
|
|
|
* 41:51 |
|
|
|
|
|
|
|
|
|
|
|
J'ai pas été très clair ici : certaines des fonctionnalités de `git gui` |
|
|
|
|
|
que je vous ai montrées sont aussi faisables directement avec la commande |
|
|
|
|
|
`git add -p`. |
|
|
|
|
|
|
|
|
|
|
|
* 51:59 |
|
|
|
|
|
|
|
|
|
|
|
D'ailleurs si vous avez un git assez récent, vous verrez que |
|
|
|
|
|
les fonctionnalités de `checkout` on été découpées en deux |
|
|
|
|
|
avec d'un côté `git switch` et de l'autre `git restore`. |
|
|
|
|
|
|
|
|
|
|
|
Je vous recommande d'utilisez celles-là si vous pouvez. |
|
|
|
|
|
(moi j'utilise tout le temps `checkout` par habitude) |
|
|
|
|
|
|
|
|
|
|
|
* 52:38 |
|
|
|
|
|
|
|
|
|
|
|
Le livre officiel sur Git, en Français, très complet : https://git-scm.com/book/fr/v2 |