Erro de mesclagem do GIT "não é possível confirmar porque você possui arquivos não mesclados"


172

então esqueci de puxar meu código antes de editá-lo e, quando comprometi o novo código e tentei enviar, recebi o envio de erro não é possível; nesse momento, fiz um "git pull" que destacou alguns arquivos com conflito. Eu removi os conflitos, mas não sei o que fazer daqui ..

Eu tentei git commitnovamente, mas diz "confirmar não é possível porque você tem arquivos não mesclados"

Respostas:


245

Se você corrigiu os conflitos com os quais precisa adicionar os arquivos ao estágio git add [filename], efetue o commit normalmente.


2
E se esses forem os arquivos nos quais não estou trabalhando? Ainda devo adicioná-los? Qual é a melhor maneira de lidar com isso?
precisa

1
Eu tive que fazer isso para um arquivo que foi excluído em uma ramificação que eu estava mesclando na ramificação atual. O Git sinalizou isso como um conflito, então tive que excluir o arquivo localmente git add the_filepara confirmar a mesclagem.
Brendon Muir

como encontrar lista de conflitos?
Polina-c 08/08/19

7
git statusvai mostrar os arquivos que têm conflitos
jonnystoten

@jonnystoten obrigado pelo seu comentário! Eu usei git statuse encontrei um arquivo que dizia both deleted. A interface do usuário WebStorm não mostrou o problema, apenas disse que não poderia cometer uma fusão. Resolvido!
Yuri Predborski 28/03/19

52

Você precisa fazer duas coisas. Primeiro adicione as alterações com

git add .
git stash  

git checkout <some branch>

Ele deve resolver seu problema, conforme resolvido para mim.


Não é necessário apenas o git add. seria suficiente
Rais Iqbal

3
Além disso, este é um lançador pesado, se você não está querendo git addtodos seus arquivos de trabalho
courtsimas

11

Você pode usar git stashpara salvar o repositório atual antes de fazer a confirmação que deseja fazer (depois de mesclar as alterações do repositório upstream com git stash pop). Ontem tive que fazer isso quando tive o mesmo problema.


2

Este erro ocorre quando você resolve os conflitos, mas o arquivo ainda precisa ser adicionado na área do palco. git add. resolveria isso. Em seguida, tente confirmar e mesclar.


0

Eu tive um problema semelhante, que se resumiu a remover arquivos em "caminhos não imersos"

Esses arquivos tiveram que ser removidos usando git rm


0

Então, pelo erro acima. Tudo o que você precisa fazer para corrigir esse problema é reverter seu código. ( git revert HEAD) git pullrefaz suas alterações e, em seguida, git pullnovamente e conseguiu confirmar ou mesclar sem erros.


0

Desde o git 2.23 (agosto de 2019), você agora tem um atalho para fazer isso: git restore --staged [filepath] . Com este comando, você pode ignorar um arquivo em conflito sem precisar adicioná-lo e removê-lo.

Exemplo:

> git status

  ...
  Unmerged paths:
    (use "git add <file>..." to mark resolution)
      both modified:   file.ex

> git restore --staged file.ex

> git status

  ...
  Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
      modified:   file.ex

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.