Vá para uma revisão em particular

Eu clonei um repository git de um determinado projeto. Posso transformar os arquivos para o estado inicial e quando revisar os arquivos, vou para a revisão 2, 3, 4 … mais recente? Eu gostaria de ter uma visão geral de como o projeto estava evoluindo.

Use git checkout para verificar um commit específico.

Para ir para uma versão / commit específica, execute os seguintes comandos. HASH-CODE você pode obter do git log --oneline -n 10

 git reset --hard HASH-CODE 

Nota – Depois de redefinir a versão / commit particular você pode executar git pull --rebase , se você quiser trazer de volta todos os commits que são descartados.

Você pode obter uma visão gráfica do histórico do projeto com ferramentas como o gitk . Apenas corra:

 gitk --all 

Se você quiser fazer o checkout de um ramo específico:

 git checkout  

Para uma confirmação específica, use o hash SHA1 em vez do nome da ramificação. (Veja Treeish no Git Community Book , que é uma boa leitura, para ver outras opções para navegar na sua tree.)

git log tem um conjunto completo de opções para exibir o histórico detalhado ou resumo também.

Eu não sei de uma maneira fácil de avançar em um histórico de commits. Projetos com uma história linear provavelmente não são tão comuns. A ideia de uma “revisão”, como você faria com o SVN ou o CVS, não mapeia tudo isso bem no Git.

Eu criei uma ferramenta python de linha de comando para ver como um projeto evoluiu. você poderia ver se isso ajuda. A ferramenta está hospedada no git no seguinte URL

https://github.com/yoganand/git-evolver

Usando a chave SHA1 de um commit, você pode fazer o seguinte:

  • Primeiro, encontre o commit desejado para um arquivo específico:

    git log -n <# commits>

    Isso, com base em seus <# commits> , gerará uma lista de confirmações para um arquivo específico.

    DICA: se você não tem certeza de qual commit está procurando, uma boa maneira de descobrir é usar o seguinte comando: git diff ..HEAD . Este comando mostrará a diferença entre a versão atual de uma confirmação e uma versão anterior de uma confirmação para um arquivo específico.

    NOTA: a chave SHA1 de um commit é formatada na lista do git log -n como:

cometer

  • Em segundo lugar, verifique a versão desejada:

    Se você encontrou o commit / version desejado, simplesmente use o comando: git checkout

    Isso colocará a versão do arquivo que você especificou na área de preparação. Para retirá-lo da área de preparo, basta usar o comando: reset HEAD

Para reverter para onde o repository remoto está apontado, simplesmente use o comando: git checkout HEAD

Uma maneira seria criar todos os commits feitos para patches. verifique o commit inicial e depois aplique os patches em ordem após a leitura.

use o git format-patch e depois git checkout . você deve obter uma pilha de arquivos em seu diretor começando com quatro dígitos que são os patches.

quando você terminar de ler sua revisão, apenas faça git apply que deve se parecer com git apply 0001-* e count.

Mas eu realmente me pergunto por que você não quer apenas ler os patches em si? Por favor poste isto nos seus comentários porque estou curioso.

o manual do git também me dá isso:

 git show next~10:Documentation/README 

Mostra o conteúdo do arquivo Documentation / README como eles estavam atuais no 10º último commit da ramificação seguinte.

você também pode dar uma olhada no git blame filename que lhe dá uma lista onde cada linha é associada a um hash de commit + author.

Eu gostaria de mencionar a ferramenta de linha de comando tig, disponível aparentemente em todos os lugares. É uma exibição em tree gráfica de texto com exibição de tag, etc. do histórico de revisão do projeto. Pode ser usado em ssh, etc. Super prático.