Como faço para extrair uma cópia de cada versão histórica de um arquivo do git?

2

Como é um arquivo binário, não é muito útil eu olhar para os diffs.

    
por John Baber-Lucero 21.11.2012 / 21:14

1 resposta

3

Sugiro escrever um pequeno script em torno de git log e git show da seguinte forma:

#!/usr/bin/env bash
DONE=false
FILE="$1"
EXPORTFILE=/tmp/exportfile
git log --pretty=format:"%h" "${FILE}" |until $DONE
do read || DONE=true
  echo "Exporting $FILE as of commit $REPLY to $EXPORTFILE-$REPLY"
  git show $REPLY:"$FILE" > $EXPORTFILE-$REPLY
done

Isso exportará todas as versões confirmadas conhecidas do primeiro argumento na ramificação atual para /tmp/exportfile-12345678 .

Por que until , $REPLY e não apenas while read $commit ? Você vai perder a última linha / commit. Leia esta questão mais sobre isso.

    
por 21.11.2012 / 22:41

Tags