Como sair de uma lista de 'status git' em um terminal?

339

Eu sou novo no Git e no terminal. Como posso sair de um modo de listagem gerado pelo git statuscomando?

Luis Martins
fonte

Respostas:

501

Eu tenho que adivinhar aqui, mas o git provavelmente está executando sua saída no seu programa $ PAGER, provavelmente lessou more. Em ambos os casos, a digitação qdeve tirá-lo de lá.

Carl Smotricz
fonte
10
O pager usado pelo git é selecionado pela core.pagervariável de configuração (se estiver definida), depois pela variável de ambiente GIT_PAGER, depois pela variável de ambiente PAGER e depois lesscomo fallback.
2174 Jakub Narębski
2
Mais uma vez obrigado, na maioria das vezes eu começava tudo de novo. Eu também sou um novato ..
Sayari
4
Obrigado! Este foi um presente de Zeus no alto. Você acabou de salvar minha bunda de uma boa hora no Google.
Padawan
152
:q

isso é menos comando, na verdade. Ele usa os mesmos comandos que o vi .

RageZ
fonte
9
Se for menor, não é necessário dois pontos (:). Você está pensando se vi!
227 Carl Smotricz
2
Se você está recebendo o (! Add to override): E37 Sem gravação desde a última mudança de erro, faça o que ele diz e uso:q!
Noumenon
11
:qfoi o que era necessário para mim, mesmo que o terminal estivesse dentro less.exe apenas q não fez nada. Obrigado @RageZ
Chris Marisic
você salvou minha vida.
AKJ
106

Digite 'q' e ele fará o trabalho.

Sempre que você estiver no terminal e tiver uma situação semelhante, lembre-se também de tentar digitar 'quit', 'exit' e a combinação de teclas de cancelamento 'Ctrl + C'.

allesklar
fonte
4
Eu estava usando 'Ctrl + Z' e acabei com uma tonelada de processos git não terminados quando executei ps -ax. Não sabia sobre q.
possível
3
Ctrl + Z coloca as tarefas em segundo plano, o que faz sentido. Pessoalmente, não consegui que o Ctrl + C o fechasse. q funciona.
Amalgovinus
Ctrl + C e Ctrl + X não funcionaram, apenas :qconseguiram me defender.
Chris Marisic #
Digitei yes em uma pergunta que me pediu para digitar yes ou no. Eu pressionei q, esce muitas outras teclas e nenhuma delas funcionou até que eu pudesse atravessar CTRL + Ce isso me tirou disso!
Mohammed Mishal
15

para Windows :

Ctrl + q e c para sair da situação de execução.

gem007bd
fonte
13

qou SHIFT+ qfará o truque. Isso vai tirar você de muitas sessões de rolagem de página extensas como git status, git show HEAD, git diffetc. Isso não vai sair de sua janela ou terminar sua sessão.

União Soviética
fonte
7

Minha combinação preferida é Gq, que imprime todas as diferenças e sai.

Você pode digitar hpara mostrar os comandos de ajuda para interagir com menos, o que imprime isso no console:

                   SUMMARY OF LESS COMMANDS

      Commands marked with * may be preceded by a number, N.
      Notes in parentheses indicate the behavior if N is given.

  h  H                 Display this help.
  q  :q  Q  :Q  ZZ     Exit.
 ---------------------------------------------------------------------------

                           MOVING

  e  ^E  j  ^N  CR  *  Forward  one line   (or N lines).
  y  ^Y  k  ^K  ^P  *  Backward one line   (or N lines).
  f  ^F  ^V  SPACE  *  Forward  one window (or N lines).
  b  ^B  ESC-v      *  Backward one window (or N lines).
  z                 *  Forward  one window (and set window to N).
  w                 *  Backward one window (and set window to N).
  ESC-SPACE         *  Forward  one window, but don't stop at end-of-file.
  d  ^D             *  Forward  one half-window (and set half-window to N).
  u  ^U             *  Backward one half-window (and set half-window to N).
  ESC-)  RightArrow *  Left  one half screen width (or N positions).
  ESC-(  LeftArrow  *  Right one half screen width (or N positions).
  F                    Forward forever; like "tail -f".
  r  ^R  ^L            Repaint screen.
  R                    Repaint screen, discarding buffered input.
        ---------------------------------------------------
        Default "window" is the screen height.
        Default "half-window" is half of the screen height.
 ---------------------------------------------------------------------------

                          SEARCHING

  /pattern          *  Search forward for (N-th) matching line.
  ?pattern          *  Search backward for (N-th) matching line.
  n                 *  Repeat previous search (for N-th occurrence).
  N                 *  Repeat previous search in reverse direction.
  ESC-n             *  Repeat previous search, spanning files.
  ESC-N             *  Repeat previous search, reverse dir. & spanning files.
  ESC-u                Undo (toggle) search highlighting.
        ---------------------------------------------------
        Search patterns may be modified by one or more of:
        ^N or !  Search for NON-matching lines.
        ^E or *  Search multiple files (pass thru END OF FILE).
        ^F or @  Start search at FIRST file (for /) or last file (for ?).
        ^K       Highlight matches, but don't move (KEEP position).
        ^R       Don't use REGULAR EXPRESSIONS.
 ---------------------------------------------------------------------------

                           JUMPING

  g  <  ESC-<       *  Go to first line in file (or line N).
  G  >  ESC->       *  Go to last line in file (or line N).
  p  %              *  Go to beginning of file (or N percent into file).
  t                 *  Go to the (N-th) next tag.
  T                 *  Go to the (N-th) previous tag.
  {  (  [           *  Find close bracket } ) ].
  }  )  ]           *  Find open bracket { ( [.
  ESC-^F <c1> <c2>  *  Find close bracket <c2>.
  ESC-^B <c1> <c2>  *  Find open bracket <c1> 
        ---------------------------------------------------
Blake Regalia
fonte
5

Antes de tudo, você precisa configurar as preferências de final de linha no termo

git config --global core.autocrlf input
git config --global core.safecrlf true

Então você pode usar :q

Jamanius
fonte
11
Uma observação para usuários do Windows: Para mim, adicionar essas linhas resultou na incapacidade de adicionar arquivos ao rastreamento (fatal: o CRLF seria substituído pelo LF no README.md). Portanto, se você estiver usando o Windows, adicione git config --global core.autocrlf true, em vez disso, ele fará o trabalho.
ConcurrentHashMap
4

Você pode desativar o pager para comandos que não reconhecem --no-pagersinalizador.

git config --global pager.<command> false

Desabilito os aliases de log e defino a quantidade específica a ser retornada.

git config --global pager.log false
James Morgan
fonte
3

Antes de pressionar os comandos de saída (q, etc.), verifique o idioma de entrada atual: se não for inglês, os comandos podem não funcionar.

papandreus
fonte
3

Crt + c funciona para Windows! user1852392

PythonLearner
fonte
3

Por favor, tente estas etapas no git bash, isso pode ajudá-lo.

  1. CTRL + C
  2. :qa!
Mestre Rejaul Karim
fonte
1

Se você está enfrentando isso?

insira a descrição da imagem aqui Às vezes, é possível que, enquanto você escreve no Gitbash, entre> e não consiga sair disso.
Isso acontece comigo muitas vezes enquanto digito 'por engano no Gitbash (veja na imagem).

Como resolver isso no Mac?

controle + C

Eu não o verifiquei no Windows. Mas se isso acontecer, edite-o na minha resposta.

Rohit Singh
fonte
0

Se você estiver no git bash, tente usar exit;

Eu tentei usar o q ou ctrl + q, mas eles não funcionaram no bash.

Govin
fonte
-4

exitfez isso por mim. Meus resultados depois de pressionar return;

my-mac:Car Game mymac$ exit
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
    ...completed.
[Process completed]
Ronny Kibet
fonte
este é o mesmo que fechar toda a janela, pergunta pede para sair da sessão git como em ssh
yosemite_k