imagem de perfil

Paula Ribeiro

Frontend Engineer

Entusiasta em aprender e compartilhar conhecimento sobre o mundo da tecnologia


Git: Além do git add, git commit e git push

Vamos avançar o conhecimento em git com alguns comandos que podem ser bem úteis no seu dia a dia


De modo geral o Git é um sistema de versionamento, ou seja, com essa ferramenta é possivel criar diferentes versões de código. Isso é possivel pois, o Git cria um histórico de commits. Em um primerio momento pode paracer um pouco complicado mas, essa ferramenta é sem sombra de dúvidas primordial para o dia-a-dia de um(a) desenvolvedor(a).


Ainda vale a pena destacar uma caracteristica que torna o Git muito superior a outras ferramentas de controle de versão, que é o seu sistema distribuido permitindo que várias pessoas em diferentes lugares trabalhe em um mesmo projeto simultaneamente.


Todo iniciante em Git começa aprendendo os comandos basicos, git add, git commit e git push, neste post vamos avançar e ampliar nosso conhecimento em Git adicionando outros comando que são bem úteis.


1. ENTENDENDO O GIT WORKFLOW


Ao adicionar um novo arquivo ao projeto, ex.: readme.md, esse arquivo ainda não possui nenhuma referencia para o Git, portanto, ele está untracked e apenas no nosso working directory como mostra a imagem a seguir:


workflow


Porém, quando executamos o comando:


  git add readme.md  

esse arquivo passa a ter uma referencia para o Git e passa para a staging area.


workflow


Quando executamos o comando:


git commit -m 'inicia projeto'

esse arquivo passa para o nosso local repository e o primeiro commit é criado.


workflow


2. CORRIGINDO A MENSAGEM DE COMMIT


Para corrigir a mensagem de commit basta executar o seguinte comando:


  git commit --amend

Logo em seguida irá abri o editor configurado no Git, no meu caso é o vim, então, basta apertar a tecla "i" para indicar para o editor que será feita uma alteração, corrigir a mensagem de commit e em seguida apertar as teclas ESC + :wq para salvar e sair.


workflow


Com o comando git log é possivel visualizar que a mensagem foi alterada com sucesso!


workflow


Caso queria trocar o editor configurado no Git basta utilizar o comando a seguir:


  git config --global core.editor <editor-de-sua-preferencia>

3. REMOVENDO DA STAGING AREA


Se por acaso adicionamos por engano algum arquivo a staging area para remover basta executar o comando:


git rm --cached <nome-do-arquivo>


reset


A imagem acima mostra, que tinhamos dois arquivos na staging area (readme.md e index.js). Ao executar os comandos git rm --cached readme.md e git status, respectivamente, podemos ver que o arquivo index.js permaneceu na staging area, enquanto o arquivo readme.md foi removido passando para untracked, ou seja, para o working directory.


4. REMOVENDO UM COMMIT


Vamos considerar o seguinte histórico de commits como mostra a imagem a seguir:


reset


Se quisermos remover um commit existem 3 formas. A primeira forma é através do comando a seguir:


  git reset --soft  <hash-do-commit> 

reset reset


Note que a hash do comando corresponde ao do commit para onde queremos retornar.


Neste caso as alterações que estavam salvas no local repository são apagada mas, permanecem salvas na staging area e no working directory conforme mostra a imagem a seguir:


reset


Outra forma de apagar um commit é através do commando:


  git reset --mixed  <hash-do-commit> 

Nesse caso, as alterações são apagadas tando do local repository quanto da staging area permanecendo salvas apenas no working directory.


E por último o commando:


  git reset --hard  <hash-do-commit> 

Apaga por completo as alterações.


5. MUDAR DE BRANCH SEM PRECISAR COMMITAR AS ALTERAÇÕES


Imagine o cenário em que está trabalhando em uma branch implementando uma nova funcionalidade, mas, surge uma nova tarefa importante e é preciso trocar a branch. Para não comprometer as mudanças feitas podemos armazená-las temporariamente com o comando:


  git stash 

Agora, podemos alterar de branch com segurança. E para reaplicar as mudanças que ficaram temporariamente armazenadas podemos usar o comando:


  git stash apply

6. MERGE DE BRANCHS COM REBASE


O git rebase é um comando utilizado para criar um histórico de commits linear e sem bifurcações. Isso torna mais fácil de entender o histórico de commits de um projeto.



git rebase <branch>


O comando acima faz com que o Git transfira na mesma ordem os commits da branch de trabalho para a ponta da branch de destino.


⚠️ Atenção: Aqui é importante ressaltar que esse comando reescreve o histórico de commits da branch de destino, portanto, não é recomendando utilizar em branchs que são compartilhadas entre o time de desenvolvedores.


7. VIZUALIZAR ÁRVORE DE COMMITS


Conforme mencionei no inicio desse post o Git cria um histórico de commits e a medida que criamos branchs diferentes uma árvore de commits é formada. Para visualizar a árvore de commits podemos utilizar o comando a seguir:


git log --decorate --oneline --graph --all

A imagem a seguir ilustra um exemplo:


arvore-commits


8. CRIAR ALIAS


O Git permite criar atalhos e personalizar os comandos, isso é interessante para ganhar produtividade e evitar erros de digitação. Podemos criar um alias para o comando git status conforme mostra o comando a seguir:


git config --global alias.st status 

No comando acima definimos o alias "st", isso significa que ao digitar o comando git st implicitamente o comando git status irá ser executado.


9. DICAS FINAIS


O site git-school é uma ferramenta que permite explorar o Git, atraves dela é possivel testar os comando e visualizar a árvore de commits a medida que os comandos vão sendo executados. E o cheatsheet mostra uma série de comandos bem completa vale a pena dá uma conferida.


Se gostou do post deixa seu comentário aqui embaixo e compartilha!