Estou usando o Git 1.7.4.1. Desejo obter a versão mais recente do meu código do repositório, mas estou recebendo erros ...
$ git pull
….
M selenium/ant/build.properties
….
M selenium/scripts/linux/get_latest_updates.sh
M selenium/scripts/windows/start-selenium.bat
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>' as appropriate to mark resolution, or use 'git commit -a'.
Excluí as cópias locais dos arquivos dos quais a ferramenta está reclamando, mas ainda recebo os erros. Como verifico a versão mais recente do repositório remoto? - Dave
git fetch
primeiro. Eu não estava tendo conflitos, mas foi assim que obtive a versão mais recente do código.Respostas:
Se você não se importa com nenhuma alteração local (incluindo arquivos ou sub-repositórios não rastreados ou gerados que estão aqui) e deseja apenas uma cópia do repositório:
Novamente, isso eliminará todas as alterações feitas localmente; portanto, use com cuidado. Pense
rm -Rf
ao fazer isso.fonte
git clean -f
não é realmente parte da resposta. Ele excluirá os arquivos que não estão sendo mantidos no repositório (por exemplo, no meu caso, arquivos de log); você não precisa fazer isso para voltar agit pull
trabalhar, bastagit reset --hard HEAD
.git clean -f
é importante se você quiser uma limpeza real do seu repositoy. É o equivalente a fazer um "Excluir tudo da pasta -> Obter versão mais recente / Especificar" no TFS e, no meu caso, é isso que eu queria.Caso 1: não se preocupe com alterações locais
Solução 1: obtenha o código mais recente e redefina o código
Solução 2: exclua a pasta e clone novamente: D
Caso 2: Cuidado com as mudanças locais
Solução 1: sem conflitos com a nova versão online
relatará algo como:
Então obtenha a versão mais recente
Solução 2: conflitos com a versão nova online
relatará algo como:
Confirme suas alterações locais
Tente obter as alterações (falhará)
relatará algo como:
Abra o arquivo de conflito e corrija o conflito. Então:
relatará algo como:
Mais informações: Como uso o 'git reset --hard HEAD' para reverter para um commit anterior?
fonte
Eu suspeito que o que aconteceu pode ser que você excluiu os arquivos que modificou (porque não se importava com essas alterações) e agora o git está aceitando a exclusão como uma alteração.
Aqui está uma abordagem que move suas alterações para fora da sua cópia de trabalho e para o "esconderijo" (recuperável, se realmente precisar que você precise delas novamente), para que você possa extrair as alterações mais recentes do montante.
Se você quiser recuperar seus arquivos (conflitos em potencial com alterações de montante e tudo), execute a
git stash apply
para colar essas alterações no seu código. Dessa forma, você tem uma abordagem "desfazer".fonte
git stash pop
menos que você queira uma história de seus esconderijos gitVocê precisa mesclar seus arquivos primeiro. Faça um
git status
para ver quais são os arquivos que precisam ser mesclados (significa que você precisa resolver os conflitos primeiro). Feito isso, façagit add file_merged
e faça o seupull
novamente.fonte
tente este código
fonte
Se você quiser apenas jogar fora tudo na sua pasta de trabalho (por exemplo, os resultados de uma fusão com falha ou interrompida) e reverter para uma confirmação anterior limpa, faça a
git reset --hard
.fonte
Entendo que você deseja descartar as alterações locais e remover o que está no seu controle remoto?
Se tudo mais falhar, e se você (compreensivelmente) tem medo de "redefinir", a coisa mais simples é clonar a origem em um novo diretório e jogar fora o antigo.
fonte
Ao executar este comando, você obtém a tag mais recente que geralmente é a versão do seu projeto:
fonte
Parece-me que você está tendo problemas essenciais. core.autocrlf = true pode causar problemas como os que você descreve no Windows se as novas linhas da CRLF tiverem sido verificadas no repositório. Tente desativar core.autocrlf para o repositório e execute uma reinicialização completa.
fonte
Se você estiver usando a GUI do Git, primeiro busque e depois mescle.
Buscar através do menu Remoto >> Buscar >> Origem. Mesclar através do menu Mesclar >> Mesclar local.
A seguinte caixa de diálogo é exibida.
Selecione o botão de opção ramo de rastreamento (também por padrão selecionado), deixe a caixa amarela vazia e pressione mesclar, e isso deve atualizar os arquivos.
Eu já havia revertido algumas alterações locais antes de executar essas etapas, pois queria descartá-las de qualquer maneira, para não precisar eliminá-las posteriormente.
fonte