diff --git a/pre-commit b/pre-commit new file mode 100644 index 0000000..7a2ae12 --- /dev/null +++ b/pre-commit @@ -0,0 +1,25 @@ +#!/bin/bash + +ARCHIVE_DIR="Archiv" + +git diff --cached --name-only | while read FILE +do + if [[ "$FILE" =~ ^"$ARCHIVE_DIR"/ ]]; then + if git rev-parse --verify --quiet HEAD:"$FILE" > /dev/null; then + echo "" + echo "----------------------------------------------------------------------" + echo "FEHLER: Die Datei '$FILE' existiert bereits im Git-Archiv." + echo "Es ist nicht erlaubt, vorhandene Dateien im '$ARCHIVE_DIR/'-Verzeichnis zu ändern oder neu hinzuzufügen." + echo "Die Änderungen an '$FILE' werden nun verworfen." + echo "----------------------------------------------------------------------" + echo "" + + git restore --staged "$FILE" + git restore "$FILE" + + exit 1 + fi + fi +done + +exit 0 \ No newline at end of file