96 lines
3.1 KiB
Markdown
96 lines
3.1 KiB
Markdown
#TP5 Activité de groupe : Découverte de Git sous Linux
|
|
|
|
## Objectif de l'activite
|
|
Cette activite a pour but de decouvrir les commandes de base de Git sous Linux, dans un contexte
|
|
collaboratif. Les etudiants travailleront par groupes pour developper un mini-projet en C, tout en utilisant les
|
|
fonctionnalites principales de Git : clone d'un depot distant, commits, branches, fusions, resolution de conflits
|
|
et push vers Gitea.
|
|
|
|
Etape 1 - Création et Recuperation du projet depuis Gitea
|
|
|
|
***
|
|
Attention tout ce qui est entre *truc* dans être modifier pour corespondre au nommage de vos fichiers et projets
|
|
***
|
|
|
|
Créer en compte pour chaque membre de groupe sur https://gitea.apf-bi.ovh (avec votre addresse unilim)
|
|
Créer un depot publique sur le gitea avec l'un des comptes juste créer (le nommer en accord avec votre groupe de TP: MIX-1-toto-tata)
|
|
|
|
Chaque groupe commence par cloner un depot depuis le gitea sur sa machine virtuelle linux (la lancer avec l'icone xubuntu du bureau. identifiant eleve mdp eleve).
|
|
|
|
```
|
|
git clone http://gitea.apf-bi.ovh/*<utilisateur>*/*projet-git.git*
|
|
```
|
|
|
|
Ensuite il faudra déclarer votre identité
|
|
```
|
|
git config --global user.email "you@example.com"
|
|
git config --global user.name "Your Name"
|
|
```
|
|
Ensuite placez vous dans le dossier du projet, ajoutez un fichier source en C (un membre du binome le fait pour iniitalisé votre dépot), et realisent un premier commit suivi d'un push vers Gitea:
|
|
|
|
```
|
|
cd *projet-git*
|
|
nano main.c
|
|
git add main.c
|
|
git commit -m "Initial commit avec fichier main.c"
|
|
git push origin main
|
|
```
|
|
|
|
Etape 2 - Travail en branches
|
|
Chaque membre du groupe cree sa propre branche pour ajouter une fonction au programme C. Attention il faut que le membre du binome n'ayant pas fait le commit-push initial de re-cloner le dépot d'abord avec un git clone. Pour se faire il faut donc faire:
|
|
|
|
```
|
|
git checkout -b *feature-nom*
|
|
```
|
|
Chaque membre de binome modifie main.c pour ajouter une fonction ou un commentaire (à l'aide de l'éditeur de texte en ligne de commande nano par exemple)
|
|
Ensuite chaque membre effectue un commit sur sa branche et pousse la branche sur le serveur Gitea. En faisant:
|
|
|
|
```
|
|
git add main.c
|
|
git commit -m "Ajout de la fonction X"
|
|
git push origin feature-nom
|
|
```
|
|
|
|
Etape 3 - Fusion des branches
|
|
Les membres du groupe fusionnent leurs branches dans la branche principale en local, puis synchronisent le
|
|
depot avec Gitea. Des conflits peuvent survenir et devront etre resolus manuellement.
|
|
|
|
|
|
```
|
|
git checkout main
|
|
git pull origin main
|
|
git merge feature-nom
|
|
```
|
|
|
|
En cas de conflit :
|
|
```
|
|
git status
|
|
git diff
|
|
```
|
|
|
|
Resoudre manuellement les conflits, puis reprendre le processus de commit-push :
|
|
```
|
|
git add main.c
|
|
git commit -m "Resolution de conflit"
|
|
git push origin main
|
|
```
|
|
|
|
|
|
Etape 4 - Consultation de l'historique
|
|
Les etudiants consultent l'historique des commits et visualisent la structure du projet.
|
|
|
|
git log --oneline --graph --all
|
|
|
|
***
|
|
|
|
Fichier C de depart (main.c)
|
|
```
|
|
#include <stdio.h>
|
|
int main() {
|
|
printf("Bonjour, Git !\n");
|
|
return 0;
|
|
}
|
|
```
|
|
# Memo git (crédit github)
|
|
https://training.github.com/downloads/fr/github-git-cheat-sheet.pdf
|