Arbeiten mit mehreren Dateien und Verzeichnissen
Nachdem wir nun wissen, wie man eine einzelne Datei aus dem Git-Cache entfernt, wollen wir komplexere Szenarien untersuchen, wie z. B. das Entfernen mehrerer Dateien oder ganzer Verzeichnisse.
Erstellen weiterer Dateien zum Üben
Erstellen wir zunächst ein paar weitere Dateien und eine Verzeichnisstruktur, um damit zu üben:
- Erstellen Sie ein Verzeichnis und einige zusätzliche Dateien:
## Create a directory for temporary files
mkdir temp
## Create some files in the temp directory
echo "This is a temporary file" > temp/temp1.txt
echo "Another temporary file" > temp/temp2.txt
## Create another log file in the main directory
echo "2023-01-02: System updated" > system.log
- Fügen Sie diese neuen Dateien zum Tracking von Git hinzu:
git add .
- Committen Sie die Änderungen:
git commit -m "Add temporary files and system log"
- Überprüfen Sie, ob Git alle Dateien trackt:
git ls-files
Sie sollten sehen:
app.log
config.ini
sample.txt
system.log
temp/temp1.txt
temp/temp2.txt
Entfernen mehrerer Dateien aus dem Git-Cache
Nehmen wir nun an, wir möchten alle Protokolldateien und das gesamte temp-Verzeichnis aus dem Tracking von Git entfernen.
- Entfernen Sie die Protokolldatei aus dem Tracking von Git:
git rm --cached system.log
- Entfernen Sie rekursiv alle Dateien im temp-Verzeichnis:
git rm --cached -r temp/
Das Flag -r
ist hier wichtig, da es Git anweist, alle Dateien im Verzeichnis rekursiv aus seinem Cache zu entfernen.
- Überprüfen Sie den Status:
git status
Sie sehen, dass sowohl die Protokolldatei als auch alle Dateien im temp-Verzeichnis für das Löschen aus dem Tracking-System von Git vorgemerkt sind:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: system.log
deleted: temp/temp1.txt
deleted: temp/temp2.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
system.log
temp/
- Committen Sie diese Änderungen:
git commit -m "Remove logs and temp directory from Git tracking"
- Überprüfen Sie, ob Git diese Dateien nicht mehr trackt:
git ls-files
Jetzt sollten Sie nur noch sehen:
app.log
config.ini
sample.txt
Allerdings existieren alle Dateien weiterhin in Ihrem lokalen Verzeichnis:
ls -la
ls -la temp/
Verwenden von .gitignore, um das Tracking unerwünschter Dateien zu verhindern
Nachdem wir die Dateien aus dem Tracking von Git entfernt haben, richten wir nun eine .gitignore
-Datei ein, um zu verhindern, dass sie versehentlich wieder hinzugefügt werden:
- Erstellen Sie eine
.gitignore
-Datei:
nano .gitignore
- Fügen Sie die folgenden Muster zur Datei hinzu:
## Ignore log files
*.log
## Ignore temp directory
temp/
-
Speichern und beenden (drücken Sie Strg+X, dann Y, dann Eingabe)
-
Fügen Sie die .gitignore
-Datei hinzu und committen Sie sie:
git add .gitignore
git commit -m "Add .gitignore file"
Nun, selbst wenn Sie versuchen, alle Dateien zu Git hinzuzufügen, respektiert es Ihre .gitignore
-Datei und trackt die angegebenen Muster nicht:
git add .
git status
Sie sollten sehen, dass die Protokolldateien und das temp-Verzeichnis nicht zum Tracking von Git hinzugefügt werden.
Sie haben jetzt gelernt, wie man mehrere Dateien und Verzeichnisse aus dem Git-Cache entfernt und wie man mit einer .gitignore
-Datei verhindert, dass bestimmte Dateien in Zukunft getrackt werden.