Grundlagen von Linux und der Kommandozeile
In der .gitignore eines mit Git verwalteten Projekts wurde „build/“ eingetragen, doch Änderungen an der früher committeten Datei build/out.log erscheinen weiterhin in git status. Was ist der Grund?
- A.gitignore wirkt nur auf noch nicht verfolgte Dateien, daher muss eine verfolgte Datei mit git rm --cached aus der Verfolgung genommen werden
- BIn .gitignore lassen sich keine Verzeichnisse eintragen, daher müssen die Namen der zu ignorierenden Dateien einzeln eingetragen werden
- C.gitignore wirkt auf keine Datei, bis die Datei .gitignore selbst mit git add hinzugefügt und committet wurde
Antwort und Erläuterung anzeigen
Antwort: A. .gitignore wirkt nur auf noch nicht verfolgte Dateien, daher muss eine verfolgte Datei mit git rm --cached aus der Verfolgung genommen werden
.gitignore ist eine Einstellung, die noch nicht verfolgte Dateien (nie committet oder mit git add hinzugefügt) aus der Auflistung von git status und aus dem, was git add erfasst, ausschließt. Eine bereits verfolgte Datei wird weiter verfolgt, auch wenn sie in .gitignore steht, daher erscheinen ihre Änderungen weiterhin. git rm --cached build/out.log beendet die Verfolgung, lässt die Datei im Arbeitsverzeichnis aber bestehen, und nachdem das committet wurde, greift der Eintrag in .gitignore. Große erzeugte Dateien wie Simulationsausgaben und Build-Ergebnisse trägt man am besten von Anfang an in .gitignore ein.
Weiter: 9 weitere Fragen zu Grundlagen von Linux und der Kommandozeile