https://github.com/vivienneforreal/git-version-control
Case study: git command implementation
https://github.com/vivienneforreal/git-version-control
datastructures datastructures-algorithms git hash-table hashing-algorithm
Last synced: 2 months ago
JSON representation
Case study: git command implementation
- Host: GitHub
- URL: https://github.com/vivienneforreal/git-version-control
- Owner: VivienneForReal
- Created: 2023-02-20T21:58:09.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-06-08T10:13:56.000Z (almost 2 years ago)
- Last Synced: 2025-03-12T00:28:56.685Z (2 months ago)
- Topics: datastructures, datastructures-algorithms, git, hash-table, hashing-algorithm
- Language: C
- Homepage:
- Size: 45.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.MD
Awesome Lists containing this project
README
# Projet: Réalisation d'un logiciel de gestion de versions
**Aim:** Réalisation d'un *outil de suivi et de versionnage de code* (**`git`**)>**Current progress**: 100% finished
>**Réalisatrices**: Vu Hoang Thuy Duong & Halimatou Diallo
>**Instructeurs**: Paul Hermouet & Louis Serrano
# Cadre du projet
Un logiciel de **gestion de versions** est un outil permettant le stockage, le suivi et la gestion de plusieurs versions d'un projet *(ou d'un ensembles de fichiers)*.
- offrent un **accès aisé à l'historique de toutes les modifications effectuées** sur les fichiers + permettent notamment de *récupérer une version antérieure en cas de problème*.
- très utiles dans le cadre de travail collaboratif, permettant de *fusionner de manière intelligente différentes versions d'un même projet*.**Objectif:** Étudier le fonctionnement d'un logiciel de gestion de versions, *en détaillant* différentes structures de données impliquées dans sa mise en oeuvre.
## Path
1. [Preliminary](desc/preliminary.md)
2. [Enregistrement de plusieurs instantanées](desc/multi_instant.md)
3. [Gestion des commits](desc/commit.md)
4. [Timeline arborescente](desc/timeline.md)
5. [Fusions de branches](desc/branch-fusion.md)## `myGit` command simulated
1. `./myGit init`: initialise le répertoire de références
2. `./myGit list-refs`: affiche toutes les références existantes
3. `./myGit create-ref `: crée la référence `` qui pointe vers le commit correspondant au `` donné
4. `./myGit delete `: supprime la référence `name`
5. `./myGit add [ ...]`: ajoute un ou plusieurs fichiers/répertoires à la zone de préparation _(prochain commit)_
6. `./myGit list-add`: affiche le contenu de la zone de préparation
7. `./myGit clear-add`: vide la zone de préparation
8. `./myGit commit [-m ]`: effedctue un commit sur une branche, avec ou sans mesage descriptif
9. `./myGit get-current-branch` : affiche le nom de la branche courante
10. `./myGit branch `: crée une branche qui s'appelle `` si elle n'existe pas déjà
11. `./myGit branch-print `: affiche le hash de tous les commits de la branche, accompagné de leur message descriptif éventuel
12. `./myGit checkout-branch `: réalise un déplacement sur la branche ``
13. `./myGit checkout-commit `: réalise un déplacement sur le commit qui commence par ``
14. `./myGit merge `: merge la branche courante avec la branche `` en gérant les conflits