題 如何從git中提取文件的每個歷史版本的副本?


因為它是一個二進製文件,所以我看看差異並不是很有用。


2
2017-11-21 20:14


起源




答案:


我建議寫一個小腳本 git log 和 git show 像這樣:

#!/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

這將導出當前分支中第一個參數的每個已知提交版本 /tmp/exportfile-12345678

為什麼 until$REPLY 而不只是 while read $commit?你會錯過最後一行/提交。讀 這個問題 更多關於這一點。


3
2017-11-21 21:41