Como corrigir o erro Git: você precisa resolver seu índice atual primeiro

O erro " Você precisa resolver seu índice atual primeiro " ocorre no Git e significa que há um conflito de mesclagem e, a menos que você resolva o conflito, você não terá permissão para fazer o checkout para outra ramificação. Essa mensagem de erro também significa que uma mesclagem falhou ou há conflitos com os arquivos.

Erro: você precisa primeiro resolver seu índice atual

Quais são todos esses arquivos, mesclagens e conflitos? Esses termos serão desconhecidos para você se você for um iniciante no uso do Git. O Git é uma plataforma de controle de versão que permite que várias pessoas trabalhem simultaneamente em arquivos e enviem sua cópia local do código para a que está armazenada na nuvem. Dessa forma, se você alterar algum código baixado (ou já enviado) e enviá-lo novamente para a nuvem, as alterações serão sobrescritas na nuvem pela sua cópia local.

Git tem um conceito de ramos. Existe um ramo mestre e vários outros ramos se ramificam dele. Esse erro ocorre particularmente se você estiver alternando de um ramo para outro (usando checkout) e houver conflitos nos arquivos do branch atual. Se eles não forem resolvidos, você não poderá alternar as ramificações.

O que causa o erro Git: você precisa resolver seu índice atual primeiro?

Como mencionado anteriormente, as causas desse erro são bastante limitadas. Você experimentará esse erro porque:

  • Uma mesclagem falhou e você precisa resolver o conflito de mesclagem antes de continuar com outras tarefas.
  • Existem conflitos nos arquivos em sua ramificação atual (ou segmentada) e, devido a esses conflitos, você não poderá fazer o check-out de uma ramificação ou código de envio.

Antes de prosseguir com a solução, verifique se você tem o controle de versão adequado e é aconselhável impedir que outros membros da equipe alterem o código antes de resolver o conflito.

Solução 1: Resolvendo o Conflito de Mesclagem

Se a sua mesclagem não for resolvida automaticamente pelo Git, ela deixará o índice e a árvore de trabalho em um estado especial, o que ajudará a fornecer todas as informações necessárias para resolver a mesclagem. Os arquivos que possuem conflitos serão marcados especialmente no índice e, até que você resolva o problema e atualize o índice, você continuará recebendo esta mensagem de erro.

  1. Resolva todos os conflitos . Verifique os arquivos que possuem conflitos, pois eles serão marcados pelo índice e farão alterações neles.
  2. Depois de ter resolvido todos os conflitos existentes, adicione o arquivo e, em seguida, confirme .

Um exemplo é:

 $ git add arquivo.txt $ git commit 

Você pode adicionar seus comentários pessoais durante o commit. Um exemplo é:

 $ git commit –m “Este é o repositório Git Appuals” 
  1. Depois de ter resolvido o conflito, tente fazer check-out de sua ramificação existente e veja se o problema foi corrigido.

Solução 2: Revertendo sua mesclagem

Existem numerosos casos em que você mescla ramificações e erra. Por causa de todos os conflitos e confusões, o projeto agora está uma bagunça e os membros de sua equipe estão culpando você por isso. Nesse caso, você deve reverter a confirmação anterior (a consolidação de mesclagem) . Isso desfará a mesclagem completamente e trará de volta o projeto inteiro para um estado quando você não fez nenhuma mesclagem. Isso pode ser um salva-vidas se você tiver estragado as coisas além do reparo.

Para reverter a mesclagem, digite o seguinte:

 $ git reset –merge 

O comando acima irá redefinir o índice e atualizar os arquivos na árvore de trabalho que são diferentes entre o 'commit' e o 'head'. No entanto, ele manterá os arquivos diferentes entre o índice e a árvore de trabalho.

Você também pode tentar reverter o HEAD usando o seguinte comando:

 $ git reverter HEAD 

Se você quiser especificar a confirmação de mesclagem exata que deseja reverter, poderá usar o mesmo comando revert, mas especificar parâmetros adicionais. O hash SHA1 da consolidação de mesclagem será usado. O -m seguido pelo 1 indica que queremos manter o lado pai da mesclagem (a ramificação na qual estamos mesclando). O resultado dessa reversão é que o Git criará um novo commit que reverte as mudanças da fusão.

 $ git revert -m 1 dd8d6f587fa24327d5f5afd6fa8c3e604189c8d4> 

Artigos Interessantes