Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

TP3 : Synchronisation à distance et ignorer des fichiers

IUT d'Orsay, Université Paris-Saclay

Objectifs

Le but de ce TP est de comprendre les concepts et les commandes suivantes :

Graphe d’historique

Pour mieux comprendre cette notion, nous allons regarder le graphe de l’historique des versions de notre projet courant.

  1. Exécutez git log --oneline pour afficher l’historique du dépôt où chaque commit correspond à une ligne commençant par un code, appelé commit hash, permettant d’identifier le commit, suivi du message du commit.

  1. Exécutez git log --oneline --graph pour voir le graphe (dessiné en ASCII dans le terminal) associé à ces commits, où chaque sommet est représenté par une étoile.

Votre graphe devrait être linéaire (un chemin).

Lorsque vous apprendrez à gérer plusieurs branches dans votre dépôt, vous pourrez ajouter les options --decorate (pour afficher le nom de la branche à côté des commits) et --all (pour voir toutes les branches) à la commande git log --oneline --graph.

  1. Définissez la nouvelle commande git graph en tant qu’alias de la manière suivante :

git config --global alias.graph "log --oneline --graph --decorate --all"
  1. Exécutez git graph.

Diff et Pull

Rendez vous sur le Remote Repo sur GitLab.

  1. Cliquez sur Code puis Web IDE dans Open with.

  2. Créez un nouveau répertoire TP3/ et un fichier hello-world.cpp avec le code suivant.

hello-world.cpp
#include <iostream>
using namespace std;
int main() {
    cout << "Hello World!" << endl;
    return 0;
}

Vous pouvez voir un 1 sur la barre à gauche, indiquant qu’un changement a été effectué. Si vous cliquez dessus, vous verrez un changement concernant le fichier hello-world.cpp et l’option pour sauvegarder et diffuser sur la branche main (Commit and push to ‘main’).

  1. Ajoutez un message de commit.

  2. Cliquez sur le bouton Commit and push to ‘main’.

  3. Cliquez sur Continue lorsque l’on vous demande si vous souhaitez sauvegarder sur la branche par défaut (main).

Retournez sur votre Local Repo et supposons qu’un collaborateur a effectué des changements, puis les a diffusés sur le Remote Repo sans que vous en soyez informé.

  1. Exécutez git fetch, puis git status.

  1. Exécutez git diff origin/main pour voir les différences entre les deux dépôts.

  1. Pour télécharger les modifications sur le Remote Repo qui ne sont pas encore sur votre Local Repo, exécutez git pull.

Show

  1. Exécutez git graph pour voir le graphe d’historique de votre projet.

  1. Choisissez un commit hash d’un commit passé et exécutez git show <commit hash>. Observez.

Par exemple:

git show acbd123
  1. Pour voir un fichier spécifique dans un commit passé, exécutez git show <commit hash>:<fichier>.

Par exemple :

git show acbd123:TP1/my-first-file.txt

Ignorer des fichiers

  1. Ouvrez le répertoire TP3/ où se trouve le fichier hello-world.cpp.

  2. Compilez le code avec g++ -o <nom du fichier> <nom du fichier>.cpp.

Par exemple :

g++ -o hello-world hello-world.cpp
  1. Exécutez l’exécutable hello-world avec la commande ./hello-world.

Les exécutables font partie des fichiers que nous souhaitons ignorer.

  1. Créez le fichier .gitignore.

  1. Écrivez le nom de l’exécutable hello-world dans .gitignore.

  1. Exécutez git add .gitignore, git commit -m "<message>" et git push pour envoyer le fichier .gitignore sur le Remote Repo.

  2. Exécutez git status. Qu’est-ce qui change par rapport à d’habitude ?

  1. Remplacez le code du fichier .gitignore avec le code suivant.

*
!*.*
!*/
  1. Exécutez add, commit et push pour synchroniser vos dépôts.

Supprimer des fichiers

  1. Ouvrez le répertoire TP3/ et créez un fichier to-be-removed.txt.

  2. Add, commit, et push ce fichier sur le Remote Repo.

  1. Supprimez le fichier to-be-removed.txt et synchronisez avec le Remote Repo.

Dans votre Local Repo et Remote Repo, vous devez maintenant avoir la structure suivante (sans tenir compte du .git caché qui doit être dans tous les projets suivis par Git) :

TP1/
├── my-first-file.txt
├── my-second-file.txt
TP2/
├── <un fichier texte>.txt
TP3/
├── hello-world.cpp
.gitignore

D’autres fichiers peuvent être présents sur votre Working Tree mais vérifiez bien qu’ils sont ignorés (dans le .gitignore et puis avec git status).

  1. Si vous avez des fichiers indésirables, supprimez-les et synchronisez avec le Remote Repo.

  1. Revenez aux objectifs et cochez les points que vous avez maîtrisés. Entraînez-vous sur les commandes et les notions que vous n’avez pas encore bien comprises. Faites appel à votre encadrant si besoin.