|
@@ -29,7 +29,7 @@ sûr(e) de ce que vous faites.
|
|
## Afficher l'état d'un dépôt
|
|
## Afficher l'état d'un dépôt
|
|
|
|
|
|
La commande `git status` affiche l'état courant du dépôt : nouveaux fichiers,
|
|
La commande `git status` affiche l'état courant du dépôt : nouveaux fichiers,
|
|
-fichiers modifiés, fichiers supprimés. Cette commande est très sûre; elle ne
|
|
|
|
|
|
+fichiers modifiés, fichiers supprimés. Cette commande est très sûre ; elle ne
|
|
peut rien casser. N'hésitez donc pas à la lancer pour voir où vous en êtes.
|
|
peut rien casser. N'hésitez donc pas à la lancer pour voir où vous en êtes.
|
|
|
|
|
|
![](depot_local_02.png)
|
|
![](depot_local_02.png)
|
|
@@ -61,6 +61,7 @@ commits (journalisation), ce qu'on peut vérifier avec un `git status`.
|
|
|
|
|
|
Si on représente le graphe des commits correspondant à notre projet,
|
|
Si on représente le graphe des commits correspondant à notre projet,
|
|
on a pour l'instant qu'un état courant non validé.
|
|
on a pour l'instant qu'un état courant non validé.
|
|
|
|
+
|
|
![](depot_local_07.svg)
|
|
![](depot_local_07.svg)
|
|
|
|
|
|
## Valider les modifications (commit)
|
|
## Valider les modifications (commit)
|
|
@@ -78,6 +79,9 @@ Git lance alors l'éditeur de texte pour le message de commit.
|
|
Le message est pré-rempli avec des informations concernant le commit. Ces
|
|
Le message est pré-rempli avec des informations concernant le commit. Ces
|
|
informations vous permettent de vérifier que le commit correspond bien à ce que
|
|
informations vous permettent de vérifier que le commit correspond bien à ce que
|
|
vous voulez mais ne feront pas partie du message final.
|
|
vous voulez mais ne feront pas partie du message final.
|
|
|
|
+On peut spécifier le message de commit directement dans la ligne de commande
|
|
|
|
+avec `git commit -a -m "mon message"` ou plus simplement `git commit -am "mon
|
|
|
|
+message"`.
|
|
|
|
|
|
Écrivez un message expliquant rapidement les modifications que vous êtes en
|
|
Écrivez un message expliquant rapidement les modifications que vous êtes en
|
|
train de valider puis enregistrez et quittez.
|
|
train de valider puis enregistrez et quittez.
|
|
@@ -132,12 +136,13 @@ commité, le `master` correspondant toujours au dernier commit.
|
|
|
|
|
|
![](depot_local_15.svg)
|
|
![](depot_local_15.svg)
|
|
|
|
|
|
-Il est de pratique courante d'ajouter le `.gitignore` au dépôt, ainsi qu'un
|
|
|
|
-fichier `README.md` qui servira de page d'accueil (au format
|
|
|
|
-[markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)).
|
|
|
|
|
|
+Il est courant d'ajouter le `.gitignore` au dépôt, ainsi qu'un
|
|
|
|
+fichier `README.md` qui servira de page d'accueil au format
|
|
|
|
+[markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet).
|
|
|
|
|
|
![](depot_local_16.png)
|
|
![](depot_local_16.png)
|
|
|
|
|
|
|
|
+Sous Linux et Mac, la commande `echo` permet d'ajouter du texte dans un fichier.
|
|
Après ce `git commit`, on a un nouveau commit correspondant au `master` et au
|
|
Après ce `git commit`, on a un nouveau commit correspondant au `master` et au
|
|
`HEAD`.
|
|
`HEAD`.
|
|
|
|
|
|
@@ -199,8 +204,8 @@ ainsi dans un mode "détaché" (`HEAD` ne pointe plus sur un commit terminal).
|
|
|
|
|
|
Au lieu d'utiliser le numéro de commit, on peut également utiliser les
|
|
Au lieu d'utiliser le numéro de commit, on peut également utiliser les
|
|
étiquettes : par exemple `git checkout master` pour aller au dernier commit
|
|
étiquettes : par exemple `git checkout master` pour aller au dernier commit
|
|
-principal ou `git checkout HEAD~1` pour aller au commit précédent le commit
|
|
|
|
-courant.
|
|
|
|
|
|
+principal ou `git checkout HEAD~1` pour aller à 1 commit avant le commit
|
|
|
|
+courant...
|
|
|
|
|
|
## Marquer un commit
|
|
## Marquer un commit
|
|
|
|
|
|
@@ -213,15 +218,16 @@ une version ou pour pouvoir revenir plus facilement à un commit particulier.
|
|
|
|
|
|
## Supprimer des commits précédents
|
|
## Supprimer des commits précédents
|
|
|
|
|
|
-La commande `git reset 073...` revient au commit "073..." et annule tous les
|
|
|
|
-commits suivant (jusqu'à l'ancien `master`). Les modifications correspondant à
|
|
|
|
-ces commits sont regroupées dans l'état courant, non commité.
|
|
|
|
|
|
+La commande `git reset 073...` place le `master` sur le commit "073..." et
|
|
|
|
+supprime tous les commits suivants **sans supprimer les modifications
|
|
|
|
+correspondantes**, qui sont alors regroupées dans l'état courant, non commité.
|
|
|
|
|
|
![](depot_local_checkout_04.svg)
|
|
![](depot_local_checkout_04.svg)
|
|
|
|
|
|
-Autre possibilité : la commande `git reset --hard 073...` revient au commit
|
|
|
|
-"073..." et annule tous les commits suivant **en supprimant les modifications
|
|
|
|
-correspondantes**.
|
|
|
|
|
|
+La commande `git reset --hard 073...` est équivalente à la commande précédente
|
|
|
|
+sauf qu'elle **supprime les modifications correspondantes**.
|
|
|
|
+Les fichiers sont donc remis dans l'état du commit "073...", et `master` et
|
|
|
|
+`HEAD` pointent vers ce commit.
|
|
|
|
|
|
![](depot_local_checkout_05.svg)
|
|
![](depot_local_checkout_05.svg)
|
|
|
|
|
|
@@ -246,21 +252,21 @@ Résumé des commandes git précédentes :
|
|
|
|
|
|
Quelques conseils de méthode de travail :
|
|
Quelques conseils de méthode de travail :
|
|
|
|
|
|
-- privilégiez les petits dépôts, correspondant à différents travaux, plutôt
|
|
|
|
- qu'un gros dépôt regroupant tous vos travaux de l'année
|
|
|
|
-- faites des commits réguliers et correspondant aux petites tâches successives
|
|
|
|
-- évitez de commiter un projet cassé (par exemple, du code qui ne compile pas)
|
|
|
|
-- ne versionnez pas les fichiers auto-générés
|
|
|
|
|
|
+- Privilégiez les petits dépôts, correspondant à différents travaux, plutôt
|
|
|
|
+ qu'un gros dépôt regroupant tous vos travaux de l'année.
|
|
|
|
+- Faites des commits réguliers et correspondant à des petites tâches successives.
|
|
|
|
+- Évitez de commiter un projet cassé (par exemple, du code qui ne compile pas).
|
|
|
|
+- Ne versionnez pas les fichiers auto-générés.
|
|
|
|
|
|
## Exercice
|
|
## Exercice
|
|
|
|
|
|
-- créez un nouveau dépôt local, ajoutez des fichiers et faites quelques
|
|
|
|
- commits; affichez l'état du dépôt à chaque étape
|
|
|
|
-- renommez et supprimez quelques fichiers
|
|
|
|
-- affichez l'historique des commits et revenez dans un état précédent du dépot
|
|
|
|
-- ajoutez une étiquette à un ancien commit et vérifiez que vous la voyez dans
|
|
|
|
- l'historique des commits ou avec un client git graphique
|
|
|
|
-- testez les suppressions de commits
|
|
|
|
|
|
+- Créez un nouveau dépôt local, ajoutez des fichiers et faites quelques
|
|
|
|
+ commits ; affichez l'état du dépôt à chaque étape.
|
|
|
|
+- Renommez et supprimez quelques fichiers.
|
|
|
|
+- Affichez l'historique des commits et revenez dans un état précédent du dépot.
|
|
|
|
+- Ajoutez une étiquette à un ancien commit et vérifiez que vous la voyez dans
|
|
|
|
+ l'historique des commits ou avec un client git graphique.
|
|
|
|
+- Testez les suppressions de commits.
|
|
|
|
|
|
* * * * *
|
|
* * * * *
|
|
|
|
|