Status e fluxo do Git de uma vez por todas
Resumo: Aprenda os states (status) do fluxo do git. Uma explicação simples sobre a teoria.
O Git possui status de cada arquivo, e nós podemos ver esses status com o comando git status
. Esse tutorial irá permitir que você entenda e relacione os status com os comandos do git.
State / fases do git
State ou fases do git são os status que o arquivo recebe. Dessa maneira o git classifica para você o que é um arquivo novo, um arquivo modificado, um arquivo commitado e um arquivo já enviado.
O git possui 4 status
- Untraked que representa que o arquivo não foi adicionado para a fila do git, ou seja, um arquivo novo, o git não tem poder sobre esse arquivo.
- Unmodified que representa os arquivos que foram adicionados em sua primeira vez a fila do git.
- Modified que representa arquivos que foram adicionados mas foram modificados.
- Staged que representa arquivos que foram comitados mas não foram ainda enviados ao servidor.
É muito simples a ideia.
Quando você cria um arquivo ou inicializa o git em um diretório, você esta deixando seus arquivos com o status de untracked, e isso irá ocorrer sempre que um novo arquivo for inserido / criado no diretório em que o git foi inicializado. Veja nosso artigo para ver mais sobre inicializar o git em um diretório.
Exemplo, crie um arquivo chamado teste.txt no diretório em que você inicializou o git e salve. Em seguida abra o terminal nesse diretório (botão direito e abrir no terminal, git bash here ou navegue pelo terminal até estar dentro do diretório).
Com isso rode o comando git status
.
Add arquivos ao git
Veja, em arquivos não monitorados, na cor vermelha, ele nos mostra o text.txt (no seu caso irá mostrar o teste.txt). Esse é um arquivo novo e não esta sendo usado pelo git, ou seja, seu status é untraked.
Logo, para adicionarmos esse arquivo a nossa fila do git, ou seja, para deixarmos o git controlar a versão do arquivo, precisamos colocar o comando:
git add teste.txt
Assim o nosso git irá adicionar o arquivo para o versionamento. Veja o exemplo:
Nota: para adicionar todos arquivos basta colocar um . (ponto) ao invés do nome do arquivo específico.
//Isso irá adicionar todos seus arquivos do diretório
git add .
Veja no nosso exemplo que depois de rodarmos o git add text.txt
e verificarmos o status dos arquivos no diretório, nosso arquivo mudou de status. Agora ele tem o status de unmodified, esse arquivo esta na “área” stage, ou seja, pronto para ser commitado. Vamos fazer:
Comitando arquivos no git
Agora que já temos o arquivo adicionado, na área de stage, (área temporária), precisamos comitar esse arquivo.
Comitar o arquivo significa colocar uma assinatura, um comentário nesse arquivo, explicando quais modificações foram feitas. Essas modificações devem ser objetivas sobre quais alterações fizemos, para isso usaremos o comando git commit
, mas além disso, devemos colocar um parâmetro -m
para informarmos quais mudanças nós fizemos.
Colocar o parâmetro -m
faz um atalho para já commitarmos o arquivos diretamente, se deixarmos sem esse parâmetro, o git irá nos pedir em seguida para escrevermos uma mensagem do que foi alterado. Exemplo:
git commit -m "Arquivo teste.txt adicionado a fila"
Nota: Aqui você deve por entre as aspas duplas a descrição do que foi feito.
Pronto, se vermos o status do nosso arquivo com git status
ou git status teste.txt
. Veremos que ele irá dizer que não a nada na nossa árvore de arquivos para ser commitado.
Isso acontece por que já colocamos as nossas atualizações, logo, o git já criou um hash para esse arquivo, portanto, não há nada para ser comitado.
Agora entre nesse mesmo arquivo e altere ele, no caso, irei colocar um texto qualquer.
Veja no nosso exemplo, depois de editarmos o arquivo .txt (no meu caso utilizei o nano pois uso o linux, mas poderia abrir esse arquivo com qualquer editor de texto) e rodar o git status
ele me mostra que o arquivo tem o status de modified.
Logo, para fazermos essa alteração devemos colocar o git add text.txt
e depois commitar as nossas mudanças com git commit -m "Foi atualizado o conteúdo do arquivo"
.
Dica: Commite os arquivos apenas quando você tiver uma funcionalidade, código, relevante. O Commit serve para você ter uma imagem do que foi modificado no arquivo, logo, não é necessário commitar a cada linha de código, e sim, quando for algo relevante. Exemplo:
- Você ficou 2 horas codando e não terminou o escopo, mas, esta cansado, dê um commit com uma descrição do que foi feito e do que falta.
- Você terminou um trecho de código, dê o commit também.
git commit -am
Perceba que ao longo do projeto, sempre teremos que fazer o git add
seguido do git commit
. Pensando nisso, podemos fazer o mesmo para arquivos que já foram adicionados a fila do git o comando:
git commit -am "Meu arquivo sendo adicionado e commitado ao mesmo tempo"
Isso permite que você adicione e faça o commit ao mesmo tempo para arquivos que já estão na fila, ou seja, que já tiveram seu primeiro git add
.
Gostou do artigo? Deixe sua dúvida ou comentário