DEV Community

Luiz Eduardo Prado Veltroni
Luiz Eduardo Prado Veltroni

Posted on • Updated on

3 Estados dos arquivos — Git e Github

Chegou a hora de entendermos sobre os três estados dos arquivos dentro de um projeto, e como somos capazes de alterar o estado deles e até visualizar as modificações atuais comparado com o commit anterior.

Lifecycle dos arquivos

1. Working directory (modified)

É o estado em que todo arquivo que foi adicionado, modificado ou removido, resulta em arquivo modificado, já que está diferente do estado atual, porém ele ainda não está dentro do próximo commit. Ou seja, o projeto está diferente comparado com a ultima versão.

2. Staging area (staged)

O arquivo só fica ‘preparado’ após executarmos o comando git add , resumindo o git já reconhece o arquivo que foi modificado e agora ele está na área de preparação e estará dentro do próximo commit.

3. Commit area (commited)

Agora que já temos todos os arquivos modificados e adicionados no Staged area, podemos formar um commit, com o seguinte comando git commit "Nome commit" , é importante lembrar que se existirem arquivos fora do Staged, ainda como modified ele não será adicionado no commit atual. Podemos formar um commit de diferentes maneiras, uma nova feature ou uma correção, depende da ocasião.
Podemos enviar para o Github com o comando git push e recomeça todo o ciclo novamente.


Restaurando arquivos

Já conhecemos o fluxo dos arquivos dentro do Git, podemos criar um cenário hipotético onde você ficou encarregado de realizar algumas modificações no projeto, você fez todas as alterações e adicionou os arquivos ao staged area com o git add . porém um arquivo foi de intruso e precisa ser adicionado em um outro commit, precisamos tirar ele usando o comando:

$ git restore --staged File.html

Esse comando irá retirar o arquivo ‘File.html’ do staged, ou seja, ele vai voltar para o inicio do processo e vai estar apenas como modified.

$ git restore --staged *.css

Remove todos os arquivos na staged que terminem com .css.

$ git restore .

Remove todos os arquivos.

Output do comando git restore

Podemos também restaurar um ponto histórico exato usando o git restore --source porém é um conceito um pouco mais avançado.


Visualizando diferenças

Sabemos adicionar e remover os arquivos entre os estados, existe um comando bem interessante na hora que você está desenvolvendo algo e precisa visualizar as modificações que você realizou.

$ git diff

Ele permite ver as alterações que foram realizadas:

Output do comando git diff


Nesse post apresentei alguns conceitos ainda iniciante porem fundamental para um bom desenvolvimento, são comando usado no dia a dia de um projeto. Importante você conhecer os três estados para saber quais arquivos vão para o próximo commit, ou quais arquivos precisam ser adicionados/removidos, também vimos uma forma de visualizar as alterações que foram realizadas sendo comparadas com as do commit anterior.

Fontes:
https://git-scm.com/book/pt-br/v2/Fundamentos-de-Git-Gravando-Altera%C3%A7%C3%B5es-em-Seu-Reposit%C3%B3rio

Top comments (0)