Eclipse git checkout (aka, reverter)

139

É possível fazer o equivalente a git checkoutpartir do Eclipse usando o plug-in EGit?

Eu tenho um arquivo que foi modificado. Quero descartar as alterações e reverter o arquivo para o que está no repositório de origem. No Subversion, isso é chamado de reversão. No git, o equivalente é checkout.

Não consigo encontrar nenhum item de menu na Equipe que pareça checkout ou reverter. Estou usando o EGit 0.6.0.

Steve Kuo
fonte
6
git é uma merda! Não mostrará o que você está prestes a reverter antes de revertê-lo. O Subversion fornecerá uma boa janela de confirmação com uma lista dos arquivos que você está prestes a reverter. Assim, você pode escolher quais deseja reverter ou cancelar no local. Que vergonha para o super poderoso git.
31413 JohnPristine
5
@JohnPristine O plugin git do Eclipse (egit) é o que mostraria uma janela de confirmação, em vez do próprio git.
Brad Cupit
Clique com o botão direito do mouse no arquivo que deseja reverter e selecione "Substituir". E eu concordo, Git é uma merda.
DhafirNz
Em 2016, o eGit versão 4.5.0 não vejo 'Substituir'. Parece agora ser 'Replace With ...' 'HEAD revision'
Ed Randall

Respostas:

274

Isso pode ser feito através do menu de contexto "Substituir por / Arquivo no índice Git" no arquivo na exibição do pacote.

Sergii Rudchenko
fonte
5
E se o arquivo não existir na área de trabalho (ainda / mais)?
zedoo 4/09/14
@zedoo Se o arquivo não existe aberta a visão "Git Staging", clique direito no arquivo excluído na lista "Unstaged Changes" e selecione "Substituir por CABEÇA Revisão"
Vlasta Dolejs
42

Você pode conseguir isso fazendo uma redefinição (rígida). No menu de contexto do projeto, selecione Equipe> Redefinir para ..., escolha "CABEÇA" e "Rígido" como tipo de redefinição.

Observe que, ao fazer isso, você perderá as alterações de TODOS os arquivos. Para reverter apenas um único arquivo, veja esta resposta .

simon
fonte
Acabei de descobrir da maneira mais difícil que o commit também faz a mesma coisa - confirma TODOS os arquivos em vez do arquivo selecionado.
Steve Kuo
Certo, mas pelo menos você pode desmarcar os arquivos na caixa de diálogo submeter ... Btw: Eu arquivou um bug para o reset bugs.eclipse.org/bugs/show_bug.cgi?id=295423
simon
5
O suporte ao Git no Eclipse é realmente inferior ao CVS e SVN por causa disso! A funcionalidade "Substituir pela mais recente da HEAD" do CVS é ​​realmente importante para mim.
kosoant
O Eclipse kosoant também pode fazer isso com o Git. Veja esta resposta
Brad Cupit
3
Ele pergunta explicitamente sobre a reversão de um arquivo, nem todos.
Zofren 11/11/14
18

na versão Eclipse: 3.7.0

em "Perspectiva de sincronização da equipe" -> clique com o botão direito do mouse no arquivo / pasta na visualização sincronizada -> substituir

ekeren
fonte
esse foi um dos mais fáceis de executar. Ele cria um pop-up para confirmar que você deseja substituir suas alterações locais.
precisa saber é o seguinte
Isso excluiu novos arquivos, alterações sem etapas, que é o que eu precisava.
Katu
12

Outra possibilidade é usar a exibição Git Staging :

  • Abra a exibição Git Staging pressionando Ctrl + 3 ou Command + 3 e digitando
    staging
  • Caso a visualização ainda não mostre seu repositório, clique no projeto ou arquivo
  • Agora você deve ver os arquivos que modificou na seção Alterações sem etapas
  • Clique duas vezes no arquivo não faseado
  • Agora você vê uma visualização de comparação com sua versão à esquerda e a versão antes das alterações à direita

Agora, para desfazer apenas algumas das alterações no arquivo, faça o seguinte:

  • Na visualização de comparação, selecione uma das suas linhas alteradas
  • Selecione o item da barra de ferramentas Copiar alteração atual da direita para a esquerda

Isso fará o lado esquerdo corresponder ao lado direito para essa alteração. Salve o arquivo para concluir o desfazer.

Para desfazer todas as suas alterações:

  • Na visualização de teste, clique com o botão direito do mouse no arquivo não testado
  • Selecione Substituir por arquivo no índice Git

Você também pode selecionar mais de um arquivo não faseado e clicar com o botão direito do mouse.

robinst
fonte
Eu me pergunto por que essa resposta obteve menos votos. Eu preferiria marcar isso melhor; nunca teria me imaginado. Obrigado @robinst
HarsH
11

Reverta um único arquivo, indo em Janela> Mostrar Visualização> Outros> Git Staging> Alterações Sem Fase

Selecione os arquivos que você deseja reverter. Clique com o botão direito e escolha Substituir pela revisão HEAD

Observe que esta etapa não pode ser desfeita.

(Estou usando a versão Eclipse: 3.7.2 Egit versão 2.3.1.201302201838-r)

TA
fonte
7

Para reverter , você pode clicar com o botão direito do mouse no arquivo / diretório desejado e selecionar Substituir por -> HEAD version

user3812819
fonte
Isso se aplica a algum plug-in Git no Eclipse? Funcionou bem com Egit.
johnnieb
ATUALIZAÇÃO: No Eclipse Mars e Luna SR2 (Git interno), funcionou assim.
Mag
4

Abra Sincronização de equipe. Localize o arquivo e clique com o botão direito do mouse -> Substituir.

ATUALIZAR

No Eclipse Luna (4.4.2), abra a sincronização de equipe. Encontre o arquivo e clique com o botão direito do mouse -> "Reverter ..."

Geddon
fonte
3

A funcionalidade está realmente lá, mas pode não ser óbvia:

  • Verifique se o quickdiff está ativado com uma revisão git e se a linha de base do quickdiff é HEAD (esse é o padrão).
  • Abra o arquivo que você deseja reverter.
  • Selecionar tudo (Ctrl-A)
  • Clique com o botão direito na barra de discagem rápida
  • Selecione "Reverter seleção"
  • Salve 

btw, reverter no git lingo significa criar um novo commit para reverter um commit anterior.

robinr
fonte
Para trabalhar com quickdiff aqui está uma breve introdução: wiki.eclipse.org/EGit/User_Guide/State#Quickdiff
Valentin Despa
1

Para reverter seu arquivo inteiro para os dados do repositório:

Clique na pasta que você deseja fazer a revisão e, em seguida, vá para o GitStaging insira a descrição da imagem aqui

adhg
fonte