11 out 9+ comandos git para salvar seu emprego
Ok, você já é adulto…
Já estamos alinhados sobre a importância do controle de versão e provavelmente você está aqui porque já usa git, certo?
No entanto, é muito comum que cometamos erros no dia a dia ao usá-lo. Por exemplo ao esquecer de adicionar um arquivo a um commit, ou criamos um branch com nome errado, entre outros erros que nos atrapalham na pior hora possível.
Veja alguns erros comuns e como contorná-los.
Alterar última mensagem de um commit
É bem comum errarmos ou esquecermos de algo na última mensagem de um commit rápido. Com o comando acima, o git abrirá o editor configurado para editar a última mensagem do seu último commit.
Alterar nome do Branch
Isso nos permite renomear um branch localmente. Muito útil quando digitamos o nome errado ou fora do padrão que deveríamos.
No entanto, se você já subiu este branch para o repositório, terá que remover o antigo e então subir o novo, após ter renomeado com o comando acima.
Para isso faça
Comitei no branch master sem querer.
Se você for rápido seu chefe nem terá tempo de preparar a carta de demissão. 🙂
Erros como este acontecem. Você estava desenvolvendo algo novo e comitou tudo no master sem querer. Faz parte.
Tudo que precisamos fazer é criar o branch certo a partir do master que está com nossas alterações; resetar o master para 1 commit anterior; e fazer checkout do branch certo para continuarmos trabalhando. E isso é feito com estes 3 comandos respectivamente:
Note que se você ainda tinha alguma coisa não salva antes do reset, você deve salvá-los (com git stash save
por exemplo).
Adicionando um arquivo no último commit
Na pressa você pode acabar esquecendo um arquivo no seu último commit. Ao invés de criar mais um commit com a mensagem “arquivos que esqueci”, você pode usar o --amend
novamente.
Adicione ou remova os arquivos esquecidos e use o –amend novamente.
Significado ℹ️
amend ﹒emendar, corrigir, refinar, fazer pequena mudança (em um texto) a fim de tornar mais justo, preciso, ou atualizado
Opcionalmente você poderá editar a mensagem do último commit a fim de mencionar alguma coisa que esqueceu, ou simplesmente manter a mensagem anterior.
Removendo arquivo adicionado acidentalmente
Ui, de novo?! Calma, não precisa atualizar seu LinkedIn em busca de outro emprego. Ainda dá tempo de corrigir.
.
Agora se você acabou de fazer commit deste arquivo também, precisará ir um pouco além:
O primeiro comando te levará ao momento que adicionou os arquivos com git add
. O segundo comando removerá o arquivo da lista de arquivos que serão comitados.
Em seguida você fará o commit novamente somente com os arquivos corretos.
E caso você tenha subido estas alterações no repositório remoto, recomendaria que fizesse um
após o procedimento acima. Isso faria uma mudança forçada fazendo com que o branch em questão ficasse exatamente igual ao seu que não contém mais o arquivo comitado acidentalmente e nenhum outro commit futuro.
Isso também é válido quando comitamos arquivos muito grandes no repositório sem querer e queremos removê-lo, reduzindo o tamanho do repositório.
Note que aqueles que já baixaram o seu commit sempre terão acesso à ele e aos arquivos adicionados lá. No caso de arquivos grandes, os repositórios (pasta .git) daqueles que já baixaram aquele arquivo permanecerão grandes, a menos que façam git clone novamente.
Ferrei tudo. Tem jeito?
O git mantém histórico de tudo que fazemos no nosso ambiente local desde o momento que clonamos o repositório ou iniciamos um. Duvida?!
O comando acima exibirá todo nosso histórico, como podemos ver abaixo. Note que a última linha mostra o momento que clonei meu repositório de testes, apenas para fazer este tutorial.
Note que a primeira coluna (em amarelo, no meu caso) mostra o identificador único daquele momento, chamado index. Para voltar a qualquer momento no tempo, podemos digitar o comando abaixo, substituindo o {index
} por um destes valores. Ex: git reset HEAD@{d937c72}
Note que: inclusive quando usamos o reset acima, isto também fica registrado, e podemos voltar ao momento anterior da mesma forma.
Voltando no tempo (literalmente)
Você pode usar o reset acima da mesma forma para voltar no tempo.
Vamos supor que você realmente acordou com o pé esquerdo e gostaria de desfazer tudo que fez hoje. Neste caso você pode usar:
Isso te levará para o dia anterior. Outras variações podem ser usadas. Veja alguns exemplos:
1.minute.ago
(um minuto atrás)1.hour.ago
(uma hora atrás)1.day.ago
(ontem)yesterday
(ontem)1.week.ago
(semana passada)1.month.ago
(mês passado)1.year.ago
(ano passado)2011-05-17.09:00:00
E também podem ser usados em conjunto. Ex: 1.day.2.hours.ago
E também no plural. Ex: