Nesse desafio você é responsável por desenvolver um sistema de versionamento de código como o git (chamaremos de fit), criando um programa cli capaz de salvar cópias de arquivos e dar feedback sobre o estado das suas cópias.
Requisitos
O programa vai criar, ler e escrever na pasta .fit (nome opcional).
Implementar os comandos init, add, commit, status e log:
Sobre fit init:
Cria a pasta .fit e todos os arquivos e subpastas necessárias pro seu programa
Sobre fit add:
Copia o arquivo adicionado para dentro da pasta .fit .
A cópia precisa ser facilmente encontrada por outros commandos.
Sobre fit commit:
Salvar um objeto Commit na pasta .fit
Um commit possui pelo menos uma data, nome e email do author, uma mensagem e um código hash único.
Sobre o fit log:
Percorre os 5 commits em ordem de criação do mais atual pro mais antigo e imprime um resume de cada um na tela.
O que você vai aprender
Como o git funciona
Manipulação de arquivos
Compressão de dados
Estrutura de Dados: Ponteiros e Lista encadeada
Plano Pro
Tenho acesso a todos os conteúdos privados com nosso plano Pro.