Git - Guia para apressados
Escrevi este texto para ajudar um Time, em que trabalhei, durante a adoção do Git. Procuro ser bem direto sobre o uso da ferramenta. A idéia é descrever o cenário de uso e o comando que atende ao cenário.
Apresentar-se para o Git
Depois de instalado, o Git espera que você configure seu usuário e email.
- O que fazer se eu esqueci de me apresentar, e acabei de commitar?
Criar um repositório novo
Controlando as modificações no repositório
Preparando o commit
O git tem o conceito de stage, que é o buffer onde se prepara o commit. Sendo assim, para gravar uma versão dos arquivos, devemos adicioná-los ao stage.
Caso deseje remover um arquivo, para informar esta remoção, ao git use:
Ops! Adicionei quem não devia
Para remover um arquivo do stage, use:
Desistindo de uma modificação, não versionada
Caso não tenha feito um commit, você ainda pode desfazer as modificações feitas desde o último commit.
Reverter as modificações feitas em um arquivo já versionado
Reverter todas as modificações feitas em todos os arquivo já versionados
Remover arquivos criados, que não estejam versionados, e não serão mais necessários.
Versionar as modificações, adicionadas ao stage - Commit
Fiz besteira no último commit! /o\
Existem alguns casos em que é interessante desfazer um commit. Mas, lembre-se de só desfazer commits que não foram publicados para o Time. Neste caso, faça um novo commit revertendo as mudanças.
Nunca faça isso para commits que já foram publicados por git push.
Para desfazer, o último commit e voltar as alterações para o stage:
Para desfazer, de vez, o último commit:
Observe que esse comando irá mudar o histórico de commits apagando o último commit, como se este nunca tivesse sido feito.
Apaguei um commit que não devia /o\
Então, queria apagar um commit, daí usei o “git reset –hard HEAD~1”
Só que apaguei o commit errado. Como eu recupero um commit apagado?
- Liste as últimas ações no repositório local, o que inclui o commit apagado.
- Encontre o commit perdido, pela mensagem de commit. E, copiar o sha1 que o representa, é a primeira coluna na lista do reflog.
- Para recuperar o commit perdido, será necessário fazer um cherry-pick
Pronto! Commit recuperado.
Compartilhando as modificações com o Time
Neste caso, o Time decidiu que teriam um repositório comum, para compartilhar o código.
Para enviar suas modificações para esse local remoto, use:
E, é isso. Esses são os fluxos básicos pelos quais um usuário deverá passar ao usar o git no dia-dia.