Questão quando checkout um commit anterior, existe uma maneira rápida de inserir o hash de log commit?


É realmente tedioso digitar o seguinte comando:

git checkout 622fe0a9b6bffdf4723026ae6e673245b510ac66

Existe autocomplete ou atalho para fazer isso?


4


origem


@Mechanicalsnail estou usando oh my zsh! - mko


Respostas:


Note que você tem um tonelada de atalhos que evitam entrar completamente no SHA1.

O curto SHA1 são mencionados em "Git Tools - Seleção de Revisão", mas git rev-parse seção "ESPECIFICANDO REVISÕES"menciona também (pequeno extrato):

  • master@{5}: o quinto valor anterior do mestre
  • master~3 Um sufixo ~<n> para um parâmetro de revisão significa o objeto de confirmação que é o <n>ancestral de geração do objeto de confirmação nomeado
  • :/fix nasty bug nomeia uma confirmação cuja mensagem de confirmação corresponde à expressão regular especificada
  • master@{yesterday}, HEAD@{5 minutes ago}: especifica o valor da referência em um ponto anterior no tempo.
  • ... e assim por diante.

Então, se você souber quando ou onde o commit antigo está baseado no branch atual, por exemplo, você tem outras opções.


5



+1. Eu recomendo que você se familiarize com os treeishes VonC tem ligado em sua resposta. Eles são muito mais eficazes que os SHAs parciais ou completos. - Noufal Ibrahim


Se você inserir apenas os primeiros caracteres, funcionará desde que seja inequívoco.


5



Copiar / colar parece ser o caminho mais rápido;) Mas sim, você pode simplesmente digitar os primeiros caracteres X até ter especificado um ID de confirmação não ambíguo. Eu nunca tive que digitar mais de 6 caracteres. - MichaelM