So überprüfen Sie, ob ein Git-Repository nicht nachverfolgte Dateien enthält

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 lernen Sie, wie Sie nicht nachverfolgte Dateien in einem Git-Repository identifizieren können. Das Verständnis von nicht nachverfolgten Dateien ist entscheidend für die Verwaltung des Zustands Ihres Projekts und die Gewährleistung, dass nur relevante Dateien in die Versionskontrolle aufgenommen werden.

Wir beginnen damit, den grundlegenden Befehl git status zu verwenden, um nicht nachverfolgte Dateien aufzulisten und die Ausgabe zu verstehen. Danach werden wir uns mit dem Befehl git ls-files --others befassen, der eine direktere Möglichkeit bietet, nicht nachverfolgte Dateien aufzulisten. Abschließend werden wir kurz darauf eingehen, wie Sie ignorierten Dateien in diesem Prozess Rechnung tragen können.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git/SetupandConfigGroup -.-> git/config("Set Configurations") git/BasicOperationsGroup -.-> git/status("Check Status") subgraph Lab Skills git/config -.-> lab-560093{{"So überprüfen Sie, ob ein Git-Repository nicht nachverfolgte Dateien enthält"}} git/status -.-> lab-560093{{"So überprüfen Sie, ob ein Git-Repository nicht nachverfolgte Dateien enthält"}} end

Ausführen von git status zum Auflisten nicht nachverfolgter Dateien

In diesem Schritt lernen wir, wie wir den Befehl git status verwenden können, um festzustellen, welche Dateien in unserem Projektverzeichnis von Git nicht nachverfolgt werden. Dies ist ein grundlegender Befehl, um den Zustand Ihres Repositorys zu verstehen.

Zunächst stellen Sie sicher, dass Sie sich in Ihrem Projektverzeichnis befinden. Wenn Sie das vorherige Lab befolgt haben, sollten Sie sich im Verzeichnis ~/project/my-time-machine befinden. Sie können Ihr aktuelles Verzeichnis mit dem Befehl pwd überprüfen:

pwd

Die Ausgabe sollte in etwa so aussehen:

/home/labex/project/my-time-machine

Jetzt erstellen wir eine neue Datei in diesem Verzeichnis. Wir nennen sie notes.txt:

echo "Some random notes" > notes.txt

Dieser Befehl erstellt eine Datei namens notes.txt und schreibt den Text "Some random notes" hinein.

Jetzt führen wir git status aus, um zu sehen, wie Git diese neue Datei wahrnimmt:

git status

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

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

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        notes.txt

no changes added to commit (use "git add" and/or "git commit -a")

Beachten Sie den Abschnitt "Untracked files:". Git teilt uns mit, dass notes.txt eine nicht nachverfolgte Datei ist. Dies bedeutet, dass Git die Datei erkennt, aber derzeit ihre Versionen nicht verwaltet. Git wird diese Datei nicht in Commits aufnehmen, es sei denn, Sie geben ihm ausdrücklich den Befehl dazu.

Das Verständnis von nicht nachverfolgten Dateien ist wichtig, da es Ihnen hilft, Ihr Repository sauber zu halten und nur die Dateien zu verfolgen, die Teil Ihres Projekts sind. Temporäre Dateien, Build-Artefakte oder persönliche Notizen werden oft nicht nachverfolgt.

Verwenden von git ls-files --others für die Prüfung

Im vorherigen Schritt haben wir git status verwendet, um nicht nachverfolgte Dateien anzuzeigen. Während git status einen guten Überblick über den Zustand des Repositorys gibt, möchten Sie manchmal möglicherweise eine einfachere Liste nur der nicht nachverfolgten Dateien. Hier kommt git ls-files --others zum Einsatz.

Stellen Sie sicher, dass Sie sich immer noch im Verzeichnis ~/project/my-time-machine befinden.

Jetzt führen Sie den folgenden Befehl aus:

git ls-files --others

Sie sollten die folgende Ausgabe sehen:

notes.txt

Dieser Befehl listet alle Dateien in Ihrem Arbeitsverzeichnis auf, die von Git nicht nachverfolgt werden. Es ist eine direktere Möglichkeit, nur die nicht nachverfolgten Dateien anzuzeigen, im Vergleich zur detaillierten Ausgabe von git status.

Die Option --others teilt git ls-files mit, nur Dateien aufzulisten, die nicht Teil des Git-Index sind (d. h. nicht nachverfolgt werden). Dies ist nützlich für Skripte oder wenn Sie einfach eine schnelle Liste der neuen und nicht nachverfolgten Dateien in Ihrem Projekt benötigen.

Sie fragen sich vielleicht, warum Sie git ls-files --others anstelle von git status verwenden sollten. Während git status eine umfassende Ansicht einschließlich geänderter und vorgemerkt (staged) Dateien bietet, ist git ls-files --others speziell dafür ausgelegt, nur nicht nachverfolgte Dateien aufzulisten. Dies kann sehr nützlich sein, wenn Sie nicht nachverfolgte Dateien programmgesteuert verarbeiten oder verwalten möchten, beispielsweise in einem Skript, das temporäre Dateien bereinigt.

Kombination mit der Prüfung auf ignorierten Dateien

In den vorherigen Schritten haben wir gelernt, wie man nicht nachverfolgte Dateien mit git status und git ls-files --others identifiziert. Manchmal gibt es jedoch Dateien, die Sie absichtlich nicht von Git nachverfolgen lassen möchten, wie temporäre Dateien, Build-Ausgaben oder Konfigurationsdateien, die sensible Informationen enthalten. Git ermöglicht es Ihnen, diese Dateien in einer .gitignore-Datei anzugeben.

In diesem Schritt werden wir eine .gitignore-Datei erstellen und sehen, wie sich dies auf die Ausgabe von git status und git ls-files --others auswirkt.

Zunächst stellen Sie sicher, dass Sie sich im Verzeichnis ~/project/my-time-machine befinden.

Jetzt erstellen wir eine Datei, die wir ignorieren möchten. Wir nennen sie temp.log:

echo "This is a temporary log file" > temp.log

Führen Sie erneut git status aus:

git status

Sie sollten sowohl notes.txt als auch temp.log als nicht nachverfolgte Dateien aufgeführt sehen:

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

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        notes.txt
        temp.log

no changes added to commit (use "git add" and/or "git commit -a")

Jetzt erstellen wir eine .gitignore-Datei und fügen temp.log hinzu. Verwenden Sie den nano-Editor, um die Datei zu erstellen und zu bearbeiten:

nano .gitignore

Im nano-Editor geben Sie die folgende Zeile ein:

temp.log

Drücken Sie Ctrl + X, dann Y, um zu speichern, und Enter, um den Dateinamen zu bestätigen.

Jetzt führen Sie git status noch einmal aus:

git status

Diesmal sollte temp.log nicht mehr in der Liste der "Untracked files:" erscheinen:

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

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        notes.txt

no changes added to commit (use "git add" and/or "git commit -a")

Git weiß jetzt, dass es temp.log ignorieren soll. Sehen wir uns auch an, wie sich dies auf git ls-files --others auswirkt:

git ls-files --others

Die Ausgabe sollte jetzt nur notes.txt anzeigen:

notes.txt

Standardmäßig listet git ls-files --others nicht ignorierten Dateien auf. Dies ist normalerweise das gewünschte Verhalten, da Sie normalerweise nicht die Dateien sehen möchten, die Sie Git ausdrücklich angewiesen haben, zu ignorieren.

Wenn Sie dennoch sowohl ignorierten als auch andere nicht nachverfolgte Dateien sehen möchten, können Sie die Option --ignored mit git ls-files --others verwenden:

git ls-files --others --ignored

Die Ausgabe wird jetzt sowohl nicht nachverfolgte als auch ignorierten Dateien enthalten:

.gitignore
notes.txt
temp.log

Beachten Sie, dass .gitignore selbst eine nicht nachverfolgte Datei ist, bis Sie sie hinzufügen und committen.

Das Verständnis, wie man .gitignore verwendet, ist entscheidend, um Ihr Repository sauber zu halten und sich auf die eigentlichen Projektdateien zu konzentrieren. Es verhindert versehentliche Commits von Dateien, die nicht in der Versionskontrolle sein sollten.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man nicht nachverfolgte Dateien in einem Git-Repository identifiziert. Wir haben begonnen, indem wir den grundlegenden Befehl git status verwendet haben, der einen umfassenden Überblick über den Zustand des Repositorys bietet, einschließlich eines speziellen Abschnitts für nicht nachverfolgte Dateien. Dieser Befehl ist unerlässlich, um zu verstehen, welche Dateien Git derzeit nicht verwaltet.

Anschließend haben wir den Befehl git ls-files --others als alternative Methode zur Auflistung von nicht nachverfolgten Dateien untersucht. Dieser Befehl liefert eine einfachere Ausgabe und listet nur die nicht nachverfolgten Dateien selbst auf. Obwohl der vollständige Inhalt des dritten Schritts nicht angegeben ist, deutet der Titel darauf hin, dass es darum gehen würde, diese Prüfung mit der Berücksichtigung von ignorierten Dateien zu kombinieren. Ignorierte Dateien sind Dateien, die absichtlich über eine .gitignore-Datei von der Git-Nachverfolgung ausgeschlossen werden.