O Git é uma excelente ferramenta para controle de versões de arquivos. Dentro dele é possível desenvolver vários projetos em que pessoas diferentes possam contribuir de forma simultânea, modificando e acrescentando novos arquivos, sem o risco de terem suas alterações apagadas ou sobrescritas.
Controle de Status no Git
Para que isto aconteça de uma forma estruturada, cada arquivo tem um controle de status. Na figura abaixo, retirada do próprio site do Git, temos a visão completa deles. Se você já copiou ou iniciou o projeto o Git, agora pode fazer mudanças nos arquivos e enviar essas alterações para o repositório. É importante lembrar que os arquivos podem ter o status de traked ou untracked. Arquivos marcados como tracked são aqueles já dentro do repositório. Eles podem ser unmodified (que ainda não foram alterados), modified (que já sofreram alteração) ou staged (os que acabaram de ser alterados).
O que é o commit dentro do Git
Depois de sua alteração feita, é necessário fazer o commit da mesma para o projeto, ou seja, insere a mesma no histórico do projeto, para que fique disponível para outros integrantes da equipe. Ao fazer isto você insere uma descrição do que foi feito na alteração, para que ela não fique perdida e todos saibam que ela existe. Em resumo, isto seria o commit.
Como desfazer um commit
Algumas vezes você fez um commit de forma errada e precisa desfazer isto. Existem diversas formas, dependendo do que você exatamente quer mexer. Vamos apresentar algumas delas:
Alterar seu último commit
Talvez você tenha se esquecido de declarar algo na mensagem do commit e quer somente fazer uma pequena alteração. Para isto, você pode utilizar executar novamente o commit, acrescentando –amend:
1 |
$ git commit --amend |
Isto faz com que sua área de seleção seja utilizada no commit. Se você não fez nenhuma alteração, sua seleção será a mesma e você vai alterar somente a mensagem do commit que foi aberto no editor. Isto sobrescreverá o último commit, alterando somente a mensagem.
Alterar seu último commit adicionando arquivos
Agora, se você quiser adicionar um novo arquivo, o código abaixo pode ser utilizado:
1 2 3 |
$ git commit -m 'commit original' $ git add arquivo que você esqueceu $ git commit --amend |
Isso vai sobrescrever o commit anterior pelo seu novo, com as alterações.
Alterar seu último commit da forma que você quiser
Os exemplos anteriores mostravam casos específicos. Vamos agora mostrar uma solução mais completa.
1 2 3 4 5 |
$ git commit -m "algo que deu muito errado" $ git reset HEAD~ << edite os arquivos necessários >> $ git add ... $ git commit -c ORIG_HEAD |
A primeira linha é o que você quer desfazer. A segunda linha desfaz o commit, fazendo com que suas mudanças voltem ao status modified (vão aparecer como “Changes not staged for commit” no comando git status, e você vai precisar adicioná-los novamente antes de fazer outro commit).
A terceira linha representa as alterações que você vai fazer. A quarta linha representaria possíveis adições que você deseje. Na última linha, você faz o commit das alterações, reutilizando a mensagem do commit antiga. O reset copiou o cabeçalho antigo para .git/ORIG_HEAD; o comando commit mais o -c ORIG_HEAD vai abrir o editor que continha a mensagem do commit original, permitindo sua edição.
Use a área de comentários abaixo para compartilhar outras dicas ou dúvidas sobre este assunto! Caso deseje navegar mais em outros assuntos, você, pode conferir nossa galeria de vídeos sobre Git. Abaixo está um exemplo:
Outra maneira interessante de descobrir mais coisas interessantes sobre Git é acessar nossa página de projetos