Git – ¿Cómo se muestra el contenido del file para cada file en la confirmación?

¿Cómo puedo mostrar el contenido del file para cada file en la confirmación?

Por ejemplo, digamos que la confirmación tiene 20 files modificados. En este momento, estoy usando git show *commit*:*file_path* 20 veces para cada file.

¿Hay alguna manera de get toda esta información en solo un command git?

La forma más fácil es simplemente verificar la confirmación, luego mirar esos files (e ignorar cualquier otro file). Tenga en count que puede consultar un tree de trabajo diferente, por ejemplo, usando git worktree add (disponible desde la versión 2.5 de Git, confiable en su mayoría a partir de 2.6.x, pero probablemente con 2.8+):

 $ git worktree add /tmp/tmpbranch HEAD~3 Preparing /tmp/tmpbranch (identifier tmpbranch) HEAD is now at ... $ ... work with files in /tmp/tmpbranch ... 

Puedes ver lo que tienes con:

 $ git worktree list /home/torek/[path] d22d10a [master] /tmp/tmpbranch b6fc8a3 (detached HEAD) 

y limpiar de esta manera:

 $ rm -rf /tmp/tmpbranch $ git worktree prune 

Tenga en count que puede colocar el nuevo tree de trabajo en cualquier lugar, pero lo colocaría en algún lugar fuera del área de trabajo actual (o incluso en / tmp así) solo para evitar confundirme.

(Llamé a este tmpbranch , pero al usar HEAD~3 como el especificador de compromiso causó que se despegara. Sin eso, Git habría verificado el compromiso HEAD bajo el nuevo nombre de twig tmpbranch . Dando un nombre de twig como el comprobador-especificador verifica fuera de esa twig en el nuevo tree de trabajo, a less que agregue --detach para get un HEAD separado. El uso de un hash de commit sin procesar debería get un HEAD separado cada vez).

Podrías reajustar interactivamente tus commits y aplastarlos. Luego haz el show git para ese hash de commit. Por ejemplo, podrías hacer lo siguiente:

 git rebase -i HEAD~20 # your terminal will display either nano editor or vim. The format will be as such # pick *commit_hash* *commit_message* # pick *commit_hash* *commit_message* # pick *commit_hash* *commit_message* # pick *commit_hash* *commit_message* #change all of your 'pick' to 's' (s means squash). Start from the bottom and go up #Save your changes on which ever editor you are using. Git will prompt you to name your squash commit # Then just do git show *commit_hash* 

¡Espero que esto ayude!