Git Untracked-Dateien

Stewart Nguyen 6 Februar 2022
Git Untracked-Dateien

Dieser Artikel stellt vor, wie man Dateien in Git untrackt.

Dateien innerhalb eines Git-Repositorys haben zwei Zustände: tracked oder untracked.

Nachverfolgte Dateien sind Dateien, die Git kennt.

Nicht verfolgte Dateien sind Dateien, die im Arbeits-Repository erstellt, aber nicht mit dem Befehl git add hinzugefügt wurden.

Betrachten Sie dieses Szenario.

cd ~
mkdir my-repo
cd my-repo
git init
touch file.txt
git add file.txt
git commit -m 'First commit'

Git kennt file.txt, also wird file.txt technisch gesehen jetzt getrackt.

Später möchten Sie Git anweisen, file.txt (oder versehentlich übertragene Dateien) zu ignorieren, indem Sie diesen Dateinamen zu .gitignore hinzufügen.

touch .gitignore
echo 'file.txt' >> .gitignore
git add .gitignore && git commit -m 'Ignore file.txt'

Was würde passieren?

Nachdem Sie .gitignore übergeben haben, nehmen Sie eine Änderung an file.txt vor, dann zeigt git immer noch, dass file.txt verfolgt wird, weil es immer noch in Ihrem Repository-Index vorhanden ist.

$ echo 'qwe' > file.txt
$ git status
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:   file.txt

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

Untrack-Dateien in Git

Schritt 1, führen Sie den folgenden Befehl aus.

$ git rm --cache file.txt
rm 'file.txt'
$ git st
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	deleted:    file.txt
  • rm stoppt das Tracking und entfernt eine Datei aus dem lokalen Repository-Verzeichnis.
  • Die Option --cache gibt an, dass der Befehl rm die Datei nur aus dem Index entfernt, die Datei nicht aus dem lokalen Repository entfernt

git rm --cache file.txt stoppt die Nachverfolgung von file.txt, indem es aus dem Repository-Index entfernt wird, aber die Datei intakt bleibt.

$ git commit -m 'Remove file.txt from tracking'
[master 4697164] Remove file.txt from tracking
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 file.txt

Von nun an verfolgt Git keine Änderungen mehr an file.txt.

$ echo '123' > file.txt
$ git st
On branch master
nothing to commit, working tree clean

Verwandter Artikel - Git Tracking