O Programa de Formação FCamara, uma iniciativa da Orange Juice patrocinada pela FCamara, nasceu da…
Trabalhando em sistemas monolíticos com git sparse-checkout
A versão 2.25 do git lançada recentemente possibilita que o desenvolvedor atualize apenas uma parte de um repositório.
Este comando é experimental e seu comportamento poderá mudar nas próximas releases do git.
Nota: se a versão do git que você está usando é inferior a 2.25, siga este tutorial para atualizar.
O problema
Digamos que você e sua equipe trabalham em um repositório grande, por exemplo um sistema monolítico onde: backend e frontend estão no mesmo repositório, e você é um front-end que precisa atualizar apenas a parte que lhe cabe. Com a atualização do git 2.25 é possível fazer isso de forma fácil.
A solução: git sparse-checkout
Faremos um passo a passo de como usar este novo comando, para isso vou usar como exemplo o repositório geekcom/validator-docs, que é uma biblioteca Laravel para validação de documentos do Brasil.
Passo 1: Clone o repositório;
$ git clone https://github.com/geekcom/validator-docs
Passo 2: Entre no repositório que você acabou de clonar;
$ cd validator-docs/
Passo 3: Confira a estrutura de pastas do projeto;
$ ls
changelog-linker.yml
CHANGELOG.md
composer.json
LICENSE
phpcs.xml
phpunit.xml
README.md
/src
/tests
A visualização na IDE fica assim;
Neste projeto temos alguns arquivos e duas pastas: /src e /tests.
Passo 4: Inicie o sparse-checkout no modo recursivo;
$ git sparse-checkout init --cone
Neste modo todas as pastas dentro dos diretórios serão incluídas.
Passo 5: Selecione as pastas que deseja trabalhar;
$ git sparse-checkout set src tests
É possível listar as pastas selecionadas com git sparse-checkout list.
$ git sparse-checkout list
src
tests
Observe que apenas as pastas que você setou estão visíveis.
Passo 6: Siga seu fluxo de trabalho como de costume;
Faça alterações nos códigos, adicione, faça commit, etc. Depois confira o resultado deste artigo aqui.
Conclusão
Com a inclusão desse novo comando o git torna extremamente fácil trabalhar com repositórios grandes como geralmente são os sistemas monolíticos. É uma grande evolução que deveria ao menos ser testada por todo desenvolvedor que se preze.
Artigo desenvolvido por Daniel Rodrigues – PHP Sofware Engineer do Grupo FCamara
Comments (0)