Neu nach Konsultation von chatGPT
This commit is contained in:
37
restore-archiv.sh
Executable file
37
restore-archiv.sh
Executable file
@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
LOGFILE="archiv.log"
|
||||
|
||||
log() {
|
||||
local TIMESTAMP
|
||||
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
echo "[$TIMESTAMP] $1" | tee -a "$LOGFILE"
|
||||
}
|
||||
|
||||
log "🔄 Starte Wiederherstellung von Archiv-Dateien..."
|
||||
|
||||
# Alle geänderten oder gelöschten Dateien (im Arbeitsverzeichnis oder Index)
|
||||
changed_files=$(git diff --name-only Archiv)
|
||||
staged_files=$(git diff --cached --name-only Archiv)
|
||||
|
||||
all_files=$(echo -e "$changed_files\n$staged_files" | sort -u)
|
||||
|
||||
if [[ -z "$all_files" ]]; then
|
||||
log "ℹ️ Keine Änderungen an Archiv-Dateien gefunden."
|
||||
else
|
||||
for file in $all_files; do
|
||||
if [[ ! -f "$file" ]]; then
|
||||
# Datei wurde gelöscht -> Wiederherstellen
|
||||
log "⏪ Stelle gelöschte Datei '$file' wieder her"
|
||||
git restore --staged "$file"
|
||||
git restore "$file"
|
||||
else
|
||||
# Datei existiert (modifiziert) -> zurücksetzen
|
||||
log "⏪ Setze geänderte Datei '$file' zurück"
|
||||
git restore --staged "$file"
|
||||
git restore "$file"
|
||||
fi
|
||||
done
|
||||
log "✅ Alle Änderungen an Archiv-Dateien wurden rückgängig gemacht."
|
||||
fi
|
||||
Reference in New Issue
Block a user