Como posso descartar a mudança de arquivo da janela de status de fugitivos?

28

Quando na janela de status do fugitive-plugin , acessada usando :Gstatus , é possível diferenciar alterações para um arquivo usando D e alternar arquivos para consolidação usando - .

Existe algum atalho semelhante para descartar alterações, com o descarte quero dizer o equivalente de git checkout -- filename ?

Atualização:

Encontrou uma solicitação de recurso na página github dos fugitivos Problema # 97: atalho para check-out / remoção de arquivos

De acordo com isso, a maneira preferida é usar :Gread :w

Atualização 2:

Desde junho de 2014, é possível usar U como respondido por Anson abaixo .

    
por tidbeck 20.02.2012 / 11:22

5 respostas

21

Esta funcionalidade foi adicionada em junho de 2014 e é, por predefinição, mapeada para U .

Esta informação está localizada no arquivo de ajuda em :h :Gstatus :

     U     |:Git| checkout HEAD

Solicitação e discussão de recursos: link

Confirmar:
link

    
por 14.10.2014 / 19:21
13

Você pode usar o comando Gread do fugitive para substituir o conteúdo de um buffer por várias versões alternativas do arquivo do buffer (isto deve ser feito a partir do buffer de um arquivo, não do :Gstatus buffer).

  • :Gread (sem argumento) usará a versão do arquivo do índice .
  • :Gread - usará a versão do arquivo da consolidação HEAD.

Veja a documentação em :help fugitive-revision para a lista de outras especificações de revisão que fugitivo suporta (os dois acima são provavelmente os mais úteis imediatamente).

O fluxo de trabalho :Gread continua assim:

  1. :Gread
  2. fugitivo limpa o buffer atual e lê o conteúdo do índice
  3. Resultado : O buffer agora tem o mesmo conteúdo que o índice. O arquivo da árvore de trabalho não é alterado.
  4. Você pode fazer o acompanhamento com :w para salvar o arquivo na árvore de trabalho (ou usar :Gread|w se souber que deseja salvá-lo imediatamente).

O fluxo de trabalho :Git checkout -- % continua assim:

  1. :Git checkout -- %
  2. O Git copia a versão do arquivo no índice para o arquivo na árvore de trabalho.
  3. O Vim percebe que o arquivo foi alterado fora do editor e solicita que você o ignore ou recarregue.
  4. Você diz ao Vim para recarregar o arquivo.
  5. Resultado : o arquivo da árvore de trabalho e o buffer agora têm o conteúdo do índice.

Resumo: :Gread evita o aviso "o arquivo foi alterado desde a edição iniciada" e permite que você decida quando deseja modificar o arquivo na árvore de trabalho.

Quando o buffer representa um estágio de índice do arquivo em vez do arquivo da árvore de trabalho, :Gread lê o conteúdo do arquivo como existe no disco na árvore de trabalho do estágio 0 do índice.

    
por 21.02.2012 / 07:27
1

Mapeamento do gstatus para reverter o arquivo:

au FileType gitcommit nmap <buffer> U :Git checkout -- <c-r><c-g><cr>
    
por 31.03.2014 / 13:17
0

Bem, você tentou :help fugitive ?

Aparentemente não, não há atalho para esse recurso do Git.

    
por 20.02.2012 / 17:16
0

Embora não tenha nada a ver com o vim, pensei em dizer que às vezes faço:

$ git status
...
#
#   modified:   .rvmrc
#   modified:   app/views/admin/base/index.html.erb
#   modified:   config/routes.rb
#
...

$ # mouse-copy the files i want to reset, and paste them into the next command

$ cat | xargs git checkout
app/views/admin/base/index.html.erb
config/routes.rb
^D

terminando o trabalho rapidamente.

    
por 13.02.2013 / 23:15

Tags