Git: erros comuns e como corrigi-los

Se você já trabalhou em um projeto grande, no qual, além de você, muitos outros programadores estão envolvidos, obviamente você usou o Git como um sistema de controle de versão. No curso de usar algo, de acordo com o nível de complexidade de um Git semelhante, todos cometem erros.


O autor do material, cuja tradução publicamos hoje, discutirá erros comuns que os programadores cometem ao trabalhar com o Git e conversará sobre como lidar com esses erros.

Erro na última mensagem de confirmação


Após várias horas de bom trabalho, é fácil cometer um erro na mensagem de confirmação. Felizmente, isso pode ser facilmente corrigido com o seguinte comando:

git commit --amend 

Este comando abrirá o editor e permitirá que você faça alterações na última mensagem da confirmação. Ninguém, exceto você, deve saber que escreveu "Comentário inicial" com três "m".

Erro no nome da filial


Suponha que o relógio esteja quase 15:00 e você ainda não almoçou. Como resultado, atormentado pela fome, você nomeou um novo feature-brunch filial. Gostoso, você não pode dizer nada.

Este problema também pode ser resolvido. Você pode renomear uma ramificação da mesma maneira que renomeia arquivos usando o comando mv . É sobre movê-la para um novo lugar com o nome correto:

 git branch -m feature-brunch feature-branch 

Se você já enviou esse encadeamento para o repositório, precisará fazer mais algumas coisas para renomeá-lo. Você deve excluir a ramificação antiga e enviar a nova para o repositório:

 git push origin --delete feature-brunch git push origin feature-branch 

Alterações de confirmação aleatória no ramo mestre


Suponha que você esteja trabalhando em um novo recurso e que tenha pressa, esqueceu de criar um novo ramo para ele. Você já confirmou um monte de arquivos e tudo isso está no ramo master . Você pode mover todas essas alterações para uma nova ramificação usando os três comandos a seguir. Observe que, se você não usou, conforme aplicado às alterações, os comandos de commit ou stash , eles serão perdidos.

 git branch feature-branch git reset HEAD~ --hard git checkout feature-branch 

Como resultado, uma nova ramificação será criada, as alterações na ramificação master serão revertidas para o estado em que estavam antes das alterações, e será realizada uma transição para a nova ramificação, que conterá todas as alterações feitas anteriormente no master .

Trabalhe com arquivos que você esqueceu de adicionar à última confirmação


Outra supervisão comum ao trabalhar com o Git é que as confirmações são feitas muito cedo e os arquivos necessários não entram nelas. Digamos que você perdeu um arquivo, esqueceu de salvá-lo ou precisa fazer uma pequena alteração no arquivo para que o último commit faça sentido. Nesta situação, o comando --amend será útil novamente. Inclua o arquivo ausente no índice do repositório e execute este comando:

 git add missed-file.txt git commit --amend 

Depois disso, você pode alterar a mensagem de confirmação ou deixá-la da mesma forma que estava.

Adicionando o arquivo errado ao repositório


E se o seu erro for exatamente o oposto do anterior? E se você incluísse um arquivo no índice que não iria confirmar? Pode ser um arquivo ENV, um diretório de criação do projeto, uma foto do seu cão que você salvou acidentalmente na pasta errada. Tudo isso pode ser corrigido.

Se suas ações estão limitadas à indexação do arquivo, mas você ainda não o confirmou, será muito fácil lidar com o problema usando o comando reset :

 git reset /assets/img/misty-and-pepper.jpg 

Se você avançou o suficiente e conseguiu confirmar a alteração, saiba que isso é corrigível. Você só precisa usar mais alguns comandos:

 git reset --soft HEAD~1 git reset /assets/img/misty-and-pepper.jpg rm /assets/img/misty-and-pepper.jpg git commit 

Como resultado, o último commit será cancelado, a imagem será excluída, após o qual o novo commit será colocado onde deveria estar.

E se tudo desse errado?


A técnica que vamos discutir agora ajuda em situações em que tudo dá errado. Por exemplo, isso acontece quando você está muito interessado em copiar soluções prontas com o StackOverflow e, depois do trabalho, seu repositório está em condições piores do que estava no início. Talvez todos nós tenhamos caído nessa situação.

O git reflog mostra uma lista de tudo que você fez. Em seguida, ele permite que você use as ferramentas Git para reverter as alterações e retornar a um dos estados anteriores do repositório. Vale a pena notar que esse método vale a pena considerar como último recurso e, antes de usá-lo, você deve pensar cuidadosamente. Portanto, você pode listar o que foi feito com o seguinte comando:

 git reflog 

O Git se lembra de todas as nossas ações e, como resultado da execução deste comando, você pode ver algo como o seguinte:

 3ff8691 (HEAD -> feature-branch) HEAD@{0}: Branch: renamed refs/heads/feature-brunch to refs/heads/feature-branch 3ff8691 (HEAD -> feature-branch) HEAD@{2}: checkout: moving from master to feature-brunch 2b7e508 (master) HEAD@{3}: reset: moving to HEAD~ 3ff8691 (HEAD -> feature-branch) HEAD@{4}: commit: Adds the client logo 2b7e508 (master) HEAD@{5}: reset: moving to HEAD~1 37a632d HEAD@{6}: commit: Adds the client logo to the project 2b7e508 (master) HEAD@{7}: reset: moving to HEAD 2b7e508 (master) HEAD@{8}: commit (amend): Added contributing info to the site dfa27a2 HEAD@{9}: reset: moving to HEAD dfa27a2 HEAD@{10}: commit (amend): Added contributing info to the site 700d0b5 HEAD@{11}: commit: Addded contributing info to the site efba795 HEAD@{12}: commit (initial): Initial commit 

Preste atenção na coluna mais à esquerda desta lista. Ele contém índices. Se você precisar voltar em algum momento no passado, execute o seguinte comando, substituindo {index} pelo link apropriado, por exemplo, dfa27a2 . Este comando é semelhante a este:

 git reset HEAD@{index} 

Sumário


Vimos algumas maneiras de lidar com os erros que ocorrem ao trabalhar com o Git. Esperamos que você não cometa esses erros e esses métodos de trabalho com o Git não serão úteis para você. E se algo der errado - você saberá o que fazer.

Caros leitores! Você conhece algum truque interessante para trabalhar com o Git? Se sim, compartilhe-os.

Source: https://habr.com/ru/post/pt423015/


All Articles