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 Befehlrm
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