Initial commit
This commit is contained in:
32
git/find_commits.sh
Normal file
32
git/find_commits.sh
Normal file
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Location of the Git objects directory.
|
||||
# Change this if your setup is different.
|
||||
OBJECTS_DIR="./objects"
|
||||
|
||||
# Loop over the 256 possible first two characters of the SHA-1 hash.
|
||||
for dir in $(ls -1 $OBJECTS_DIR); do
|
||||
# Ignore the 'info' and 'pack' special directories.
|
||||
if [ "$dir" == "info" ] || [ "$dir" == "pack" ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# Loop over the object files in each directory.
|
||||
for file in $(ls -1 $OBJECTS_DIR/$dir); do
|
||||
# Concatenate the directory and file names to get the full SHA-1 hash.
|
||||
full_hash="${dir}${file}"
|
||||
|
||||
# Use git cat-file to find the type of the object.
|
||||
obj_type=$(git cat-file -t $full_hash 2> /dev/null)
|
||||
|
||||
# If git cat-file fails, skip this object.
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
# If the object is a commit, print its hash.
|
||||
if [ "$obj_type" == "commit" ]; then
|
||||
echo "Found commit: $full_hash"
|
||||
fi
|
||||
done
|
||||
done
|
||||
Reference in New Issue
Block a user