So prüfen Sie, ob eine Datei in Git gelöscht wurde

GitGitBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie lernen, wie Sie prüfen können, ob eine Datei in einem Git-Repository gelöscht wurde. Wir werden verschiedene Methoden untersuchen, um gelöschte Dateien zu identifizieren, einschließlich der Verwendung von git log, um die Änderungsverlauf anzuzeigen, und git status, um den aktuellen Zustand Ihres Arbeitsverzeichnisses zu sehen.

Durch praktische Schritte werden Sie eine Datei erstellen, committen und dann löschen und beobachten, wie Git diese Änderungen verfolgt. Sie werden speziell git log -- <file> verwenden, um den Commit anzuzeigen, in dem die Datei entfernt wurde, und git status, um gelöschte Dateien anzuzeigen, bevor sie committet werden. Abschließend werden Sie diese Methoden auf vorhandene Dateien anwenden, um Ihr Verständnis zu festigen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BasicOperationsGroup -.-> git/rm("Remove Files") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills git/add -.-> lab-560026{{"So prüfen Sie, ob eine Datei in Git gelöscht wurde"}} git/status -.-> lab-560026{{"So prüfen Sie, ob eine Datei in Git gelöscht wurde"}} git/commit -.-> lab-560026{{"So prüfen Sie, ob eine Datei in Git gelöscht wurde"}} git/rm -.-> lab-560026{{"So prüfen Sie, ob eine Datei in Git gelöscht wurde"}} git/log -.-> lab-560026{{"So prüfen Sie, ob eine Datei in Git gelöscht wurde"}} end

Führen Sie git log -- <Datei> aus, um Löschungen zu prüfen

In diesem Schritt werden wir untersuchen, wie Sie git log verwenden können, um den Änderungsverlauf in Ihrem Repository anzuzeigen, insbesondere wie es Dateilöschungen anzeigt.

Zunächst stellen wir sicher, dass wir uns in unserem Projektverzeichnis befinden. Öffnen Sie Ihr Terminal und geben Sie ein:

cd ~/project/my-time-machine

Jetzt erstellen wir eine neue Datei, die wir später löschen werden. Wir nennen sie to_be_deleted.txt.

echo "This file is temporary." > to_be_deleted.txt

Prüfen Sie, ob die Datei erstellt wurde:

cat to_be_deleted.txt

Sie sollten folgendes sehen:

This file is temporary.

Jetzt fügen wir diese Datei zum Staging-Bereich hinzu und committen sie. Dadurch wird ihre Existenz in unserem Git-Verlauf aufgezeichnet.

git add to_be_deleted.txt
git commit -m "Add a file to be deleted"

Sie sollten eine Ausgabe ähnlich der folgenden sehen, die darauf hinweist, dass ein neuer Commit erstellt wurde:

[master <commit-id>] Add a file to be deleted
 1 file changed, 1 insertion(+)
 create mode 100644 to_be_deleted.txt

Jetzt löschen wir die Datei mit dem rm-Befehl:

rm to_be_deleted.txt

Die Datei ist jetzt aus Ihrem Dateisystem verschwunden. Aber was weiß Git darüber? Prüfen wir den Status:

git status

Sie sollten etwas wie Folgendes sehen:

On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    to_be_deleted.txt

no changes added to commit but untracked files present (use "git add" to track)

Git erkennt korrekt, dass die Datei gelöscht wurde. Dies liegt daran, dass Git den Zustand Ihrer Dateien verfolgt. Wenn eine verfolgte Datei entfernt wird, bemerkt Git die Änderung.

Jetzt committen wir diese Löschung. Wir verwenden erneut git add, um die Löschung zum Staging-Bereich hinzuzufügen, und dann git commit.

git add to_be_deleted.txt
git commit -m "Delete the temporary file"

Sie sollten eine Ausgabe sehen, die darauf hinweist, dass die Löschung committet wurde:

[master <commit-id>] Delete the temporary file
 1 file changed, 1 deletion(-)
 delete mode 100644 to_be_deleted.txt

Schließlich verwenden wir git log, um den Verlauf, einschließlich der Löschung, anzuzeigen.

git log

Sie werden zwei Commit-Einträge sehen. Der neueste Eintrag wird die Nachricht "Delete the temporary file" haben und anzeigen, dass to_be_deleted.txt gelöscht wurde.

Drücken Sie q, um die Log-Ansicht zu verlassen.

Dies zeigt, wie Git nicht nur die Erstellung und Modifikation von Dateien verfolgt, sondern auch ihre Löschung, und somit einen vollständigen Verlauf der Entwicklung Ihres Projekts bereitstellt.

Verwenden von git status für gelöschte Dateien

In diesem Schritt werden wir weiter untersuchen, wie git status uns hilft, gelöschte Dateien zu verwalten, bevor wir die Änderungen committen.

Stellen Sie sicher, dass Sie sich immer noch in Ihrem Projektverzeichnis befinden:

cd ~/project/my-time-machine

Wir haben zuvor to_be_deleted.txt gelöscht und die Löschung committet. Erstellen wir nun eine andere Datei und löschen sie, ohne die Löschung sofort zu committen.

Erstellen Sie eine neue Datei namens another_file.txt:

echo "This is another file." > another_file.txt

Fügen Sie diese neue Datei hinzu und committen Sie sie:

git add another_file.txt
git commit -m "Add another file"

Sie sollten eine Ausgabe sehen, die den Commit bestätigt:

[master <commit-id>] Add another file
 1 file changed, 1 insertion(+)
 create mode 100644 another_file.txt

Jetzt löschen wir another_file.txt mit dem rm-Befehl:

rm another_file.txt

Die Datei ist nun aus Ihrem Dateisystem entfernt. Prüfen wir den Status unseres Repositorys:

git status

Diesmal wird die Ausgabe ähnlich wie folgt aussehen:

On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    another_file.txt

no changes added to commit but untracked files present (use "git add" to track)

Beachten Sie, dass Git die Löschung erkennt und another_file.txt unter "Changes not staged for commit" auflistet. Dies bedeutet, dass Git weiß, dass die Datei verschwunden ist, aber diese Änderung noch nicht für den nächsten Commit vorbereitet wurde.

Dies ist ein entscheidender Punkt: Das Löschen einer Datei aus Ihrem Dateisystem führt nicht automatisch dazu, dass die Löschung in Git zum Staging-Bereich hinzugefügt wird. Sie müssen Git explizit mitteilen, dass Sie diese Löschung in Ihrem Verlauf aufzeichnen möchten.

Der git status-Befehl ist Ihr Fenster in den aktuellen Zustand Ihres Repositorys. Er sagt Ihnen, welche Dateien geändert wurden, welche neu und nicht verfolgt sind und welche gelöscht wurden. Indem Sie regelmäßig git status prüfen, können Sie über die Änderungen in Ihrem Projekt informiert bleiben und entscheiden, welche Änderungen Sie in Ihren nächsten Commit aufnehmen möchten.

Im nächsten Schritt werden wir untersuchen, wie Git vorhandene Dateien behandelt, die nicht gelöscht werden.

Testen von bestehenden Dateien

In diesem Schritt werden wir sehen, wie Git Änderungen an Dateien behandelt, die bereits verfolgt werden.

Stellen Sie sicher, dass Sie sich in Ihrem Projektverzeichnis befinden:

cd ~/project/my-time-machine

Wir haben die Datei message.txt, die wir im ersten Lab erstellt und committet haben. Ändern wir diese Datei. Wir können den echo-Befehl mit >> verwenden, um Text an die bestehende Datei anzufügen.

echo "Hello again, Future Me!" >> message.txt

Der >>-Operator fügt den Text am Ende der Datei hinzu, anstatt sie zu überschreiben (was > tun würde).

Lassen Sie uns den Inhalt der Datei anzeigen, um die Änderung zu bestätigen:

cat message.txt

Sie sollten beide Zeilen sehen:

Hello, Future Me
Hello again, Future Me!

Jetzt prüfen wir den Status unseres Repositorys mit git status:

git status

Die Ausgabe wird in etwa so aussehen:

On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   message.txt

no changes added to commit but untracked files present (use "git add" to track)

Git erkennt korrekt, dass message.txt "modifiziert" wurde. Es weiß dies, weil es die aktuelle Version der Datei in Ihrem Arbeitsverzeichnis mit der Version vergleicht, die im letzten Commit gespeichert ist.

Genau wie bei gelöschten Dateien teilt Ihnen Git mit, dass die Änderungen "nicht für den Commit vorgemerkt" sind. Dies bedeutet, dass Sie die Datei geändert haben, aber Sie haben Git noch nicht mitgeteilt, dass Sie diese spezifischen Änderungen in Ihrem nächsten Sicherungspunkt aufnehmen möchten.

Dies ist der Standardworkflow in Git: Sie ändern Dateien, verwenden dann git status, um zu sehen, was Sie geändert haben, verwenden dann git add, um die Änderungen vorzumerken, die Sie committen möchten, und schließlich verwenden Sie git commit, um diese vorgemerkten Änderungen als neue Version in der Historie Ihres Projekts zu speichern.

Das Verständnis der Ausgabe von git status ist der Schlüssel für die effektive Arbeit mit Git. Es bietet einen klaren Überblick über den Zustand Ihres Projekts und gibt Ihnen Hinweise auf die nächsten Schritte, die Sie unternehmen müssen, um Ihre Änderungen aufzuzeichnen.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob eine Datei in Git gelöscht wurde. Wir haben begonnen, indem wir eine Datei erstellt und committet haben, um ihre Existenz in der Historie des Repositorys festzulegen. Dann haben wir die Datei mit dem rm-Befehl gelöscht und beobachtet, wie git status die Löschung korrekt als Änderung gemeldet hat. Schließlich haben wir die Löschung committet und dieses Ereignis in der Git-Historie aufgezeichnet.

Durch diese Schritte haben wir verstanden, dass Git Dateilöschungen verfolgt und Tools wie git status bereitstellt, um diese Änderungen zu identifizieren, bevor sie committet werden. Dieser Prozess zeigt, wie Git einen Verlauf von Dateilebenszyklusereignissen, einschließlich Erstellung und Löschung, aufrechterhält.