#!/bin/sh CHECKSUM=$1 FILE=$2 if [[ -z "$CHECKSUM" ]]; then echo "Usage: $0 md5 file" exit 1 elif [[ -z "$FILE" ]]; then echo "Usage: $0 md5 file" exit 1 fi # Check if valid git repo ROOT=$(git rev-parse --show-toplevel) if [[ $? -ne 0 ]]; then echo "Not a valid git repo." exit 1 fi cd "$ROOT" # git revision for file REVS=`git log --pretty=%H -- $FILE` # check each revision for checksum for rev in $REVS; do git show $rev:$FILE > _file_to_check # if you are on a Linux system, change md5 to md5sum if [[ -n `md5sum _file_to_check | grep $CHECKSUM` ]]; then echo $rev fi rm _file_to_check done