{"id":29260270,"url":"https://github.com/kurosawaxyz/git-version-control","last_synced_at":"2025-07-04T07:38:45.320Z","repository":{"id":166376281,"uuid":"604352075","full_name":"kurosawaxyz/git-version-control","owner":"kurosawaxyz","description":"Case study: git command implementation","archived":false,"fork":false,"pushed_at":"2023-06-08T10:13:56.000Z","size":47574,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-10T14:51:54.280Z","etag":null,"topics":["datastructures","datastructures-algorithms","git","hash-table","hashing-algorithm"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kurosawaxyz.png","metadata":{"files":{"readme":"readme.MD","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-20T21:58:09.000Z","updated_at":"2025-02-11T18:23:46.000Z","dependencies_parsed_at":"2025-03-12T00:39:03.366Z","dependency_job_id":null,"html_url":"https://github.com/kurosawaxyz/git-version-control","commit_stats":null,"previous_names":["vivienneforreal/git-version-control","kurosawaxyz/git-version-control"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kurosawaxyz/git-version-control","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurosawaxyz%2Fgit-version-control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurosawaxyz%2Fgit-version-control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurosawaxyz%2Fgit-version-control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurosawaxyz%2Fgit-version-control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kurosawaxyz","download_url":"https://codeload.github.com/kurosawaxyz/git-version-control/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kurosawaxyz%2Fgit-version-control/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263470596,"owners_count":23471779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datastructures","datastructures-algorithms","git","hash-table","hashing-algorithm"],"created_at":"2025-07-04T07:38:44.423Z","updated_at":"2025-07-04T07:38:45.308Z","avatar_url":"https://github.com/kurosawaxyz.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projet: Réalisation d'un logiciel de gestion de versions\n**Aim:** Réalisation d'un *outil de suivi et de versionnage de code* (**`git`**)\n\n\u003e**Current progress**: 100% finished\n\n\u003e**Réalisatrices**: Vu Hoang Thuy Duong \u0026 Halimatou Diallo\n\n\u003e**Instructeurs**: Paul Hermouet \u0026 Louis Serrano\n\n# Cadre du projet\nUn 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)*. \n- 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*. \n- très utiles dans le cadre de travail collaboratif, permettant de *fusionner de manière intelligente différentes versions d'un même projet*. \n\n**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. \n## Path\n1. [Preliminary](desc/preliminary.md)\n2. [Enregistrement de plusieurs instantanées](desc/multi_instant.md)\n3. [Gestion des commits](desc/commit.md)\n4. [Timeline arborescente](desc/timeline.md)\n5. [Fusions de branches](desc/branch-fusion.md)\n\n## `myGit` command simulated\n1. `./myGit init`: initialise le répertoire de références\n2. `./myGit list-refs`: affiche toutes les références existantes\n3. `./myGit create-ref \u003cname\u003e \u003chash\u003e`: crée la référence `\u003cname\u003e` qui pointe vers le commit correspondant au `\u003chash\u003e` donné\n4. `./myGit delete \u003cname\u003e`: supprime la référence `name`\n5. `./myGit add \u003celem\u003e [\u003celem2\u003e \u003celem3\u003e ...]`: ajoute un ou plusieurs fichiers/répertoires à la zone de préparation _(prochain commit)_\n6. `./myGit list-add`: affiche le contenu de la zone de préparation\n7. `./myGit clear-add`: vide la zone de préparation\n8. `./myGit commit \u003cbranch-name\u003e [-m \u003cmessage\u003e]`: effedctue un commit sur une branche, avec ou sans mesage descriptif\n9. `./myGit get-current-branch` : affiche le nom de la branche courante\n10. `./myGit branch \u003cbranch-name\u003e`: crée une branche qui s'appelle `\u003cbranch-name\u003e` si elle n'existe pas déjà\n11. `./myGit branch-print \u003cbranch-name\u003e`: affiche le hash de tous les commits de la branche, accompagné de leur message descriptif éventuel\n12. `./myGit checkout-branch \u003cbranch-name\u003e`: réalise un déplacement sur la branche `\u003cbranch-name\u003e`\n13. `./myGit checkout-commit \u003cpattern\u003e`: réalise un déplacement sur le commit qui commence par `\u003cpattern\u003e`\n14. `./myGit merge \u003cbranch\u003e \u003cmessage\u003e`: merge la branche courante avec la branche `\u003cbranch\u003e` en gérant les conflits\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkurosawaxyz%2Fgit-version-control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkurosawaxyz%2Fgit-version-control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkurosawaxyz%2Fgit-version-control/lists"}