git config --global core.editor emacs
This is an old revision of the document!
Table of Contents
Introduction à GIT
Définition de l'environnement
- Adresse de gitlab : https://git-iutinfo.unice.fr/
- Vous désactivez la vérification SSL
git config --global http.sslVerify false
- Suivez les instructions du dépôt (si vous ne les voyez plus : 2018_2019:s2:td:git:depot
Pour les étudiants qui utilisent leur ordi perso, il est possible que vous ayez besoin de, ouvrir un Git CMD en administrateur, puis taper la commande suivante:
git config --system --unset credential.helper
Git comme un historique des modifications
Chaque étudiant du groupe a une tâche particulière, chacun choisit sa couleur : Blanc, Bleu, Vert, Jaune, Rouge
- Créer un fichier contenant une classe vice en fonction de votre couleur (public class X {})
- Blanc : Game (Partie)
- Bleu : Player (Joueur)
- Vert : Move (Coup)
- Jaune : IA
- Rouge : GameManager
- Evidemment dans ce qui suit X est le nom de class créée par chacun.
- Comment interprétez-vous le résultat de la commande suivante
git status
- Ajoutez votre fichier
X.java
comme git vous l'a dit :git add X.java
- Réinterprétez le résultat de la commande
git status
. - Le fichier
X.txt
est maintenant prêt à être versionné.git commit -m "construction de la class X"
ou
git commit
1) Quel message avez-vous en retour?
- Que donne la commande
git status
? - Apportez quelques modifications au fichier
X.java
. - Essayez de commiter ces modifications. Que se passe-t-il ? En vous aidant de la documentation accessible en tapant
git help commit
, versionnez ces modifications (avec un message décrivant le changement) 4) - Affichez l’historique des modifications du dépôt.
git log
- Et pour voir les modifications apportées par le dernier commit
git log -p -1
et savoir qui fait quoi
git log --stat
ou
git log --pretty=format:"%h - %an, %ar : %s"
etc.
- En utilisant
git diff
, visualisez les modifications effectuées entre le premier commit et le second commit. Par exemplegit diff 71cfcd6 0c24491
Attention l'ordre des commits modifie le résultat (un- devient un +).
- Modifiez plusieurs fois votre fichier par exemple en ajoutant des commentaires afin d’en avoir plusieurs versions.
- Le dernier commentaire ajouté ne vous plait finalement pas. Il existe deux manières de revenir à une version antérieure : de manière temporaire ou définitive.
- Exécuter
git log
et récupérez le hash (HASH) du commit où vous souhaitez revenir en arrière.- Pour revenir en arrière de manière temporaire, exécutez
git checkout HASH
- Vérifiez que votre fichier est dans son état antérieur.
- Revenez au dernier commit (HEAD) en exécutant
git checkout master
- Pour revenir en arrière de manière définitive, et donc supprimer tout ce que vous avez fait depuis ce moment :
git reset --hard HASH
- Dans
git log
, vérifiez que tout ce que vous aviez effectué depuis ce commit a été effacé.
Synchronisation de votre répertoire
Hormis la première étape, vous avez expérimenté Git pour gérer localement vos versions. Nous allons maintenant nous intéresser au développement collaboratif de fichier sources.
- Visualisez les références distantes
git remote
- Visualisez les URL associées aux références distantes
git remote -v
- Envoyez ensuite le commit vers le dépôt distant :
git push origin master
le pousser en amont. La commande pour le faire est simple : git push [nom-distant] [nom-de-branche]. Si vous souhaitez pousser votre branche master vers le serveur origin (pour rappel, cloner un dépôt définit automatiquement ces noms pour vous), alors vous pouvez lancez ceci pour pousser votre travail vers le serveur amont :
- (Tous sauf A)
- Visualiser l'état du dépôt distant
git remote show origin
- Synchroniser votre dépôt git avec la commande
git pull
- (Un développeur autre que A)
- Modifiez le fichier index.html afin d’ajouter du texte entre les balises body.
- Commitez les modifications et envoyez-les vers le dépôt distant.
- (TOUS) Synchroniser votre dépôt git avec la commande
git pull
. - (Personne A)
- Modifiez le titre de la page Web et
- Commitez/envoyez les modifications.
- (Personne B) (SANS SYNCHRONISER LE DEPOT)
- Modifiez le titre de la page Web
- Commitez/envoyez les modifications. Que se passe-t-il ? Remédiez au conflit.
Références
import java.time.LocalTime; public class Move { private LocalTime time; }
import java.util.Date; public class Game { private Date date; }
git commit -a -m "ajout de l'attribut Y ..."