Frage .gitignore funktioniert nicht


Meine .gitignore Datei scheint von Git ignoriert werden - könnte das .gitignore Datei beschädigt sein? Welches Dateiformat, welches Gebietsschema oder welche Kultur erwartet git?

Meine .gitignore:

#this is a comment
debug.log
nbproject/

Ausgabe von git status:

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       debug.log
#       nbproject/
nothing added to commit but untracked files present (use "git add" to track)

Ich möchte debug.log und nbproject/ nicht in der Liste der nicht verfolgten Dateien erscheinen.

Wo soll ich anfangen, das zu beheben?


1069
2017-07-12 12:09


Ursprung


Antworten:


Auch wenn Sie die Dateien bisher nicht gefunden haben, scheint Git in der Lage zu sein, sie zu "kennen", selbst nachdem Sie sie hinzugefügt haben .gitignore.

HINWEIS : Beginne zuerst deine aktuellen Änderungen, sonst verlierst du sie.

Führen Sie dann die folgenden Befehle aus dem obersten Ordner Ihres Git Repos aus:

git rm -r --cached .
git add .
git commit -m "fixed untracked files"

2249
2017-07-12 12:20



Wenn die .gitignore-Datei nicht funktioniert (etwas in die .gitignore-Datei einfügen oder etwas aus der .gitignore-Datei entfernen), können Sie die folgenden Tipps überprüfen:

  1. Sie müssen manchmal auf die globale Gitignore-Datei achten kann deinen Gitignore beeinflussen.
  2. Wenn Sie der .gitignore-Datei etwas hinzufügen, als die Person, die geantwortet hat Diese Frage zuerst:

    git rm -r --cached .
    git add .
    git commit -m "fixed untracked files"  
    
  1. Wenn Sie etwas aus der .gitigore-Datei entfernen.Die obigen Schritte werden   nicht für dich arbeiten. Sie können dies versuchen:
    git add -f "filetype"
    git commit -m "Refresh removing filetype from .gitignore file."

Der "Dateityp" steht für die Datei oder den Dateityp, den Sie aus der .gitigore-Datei entfernen möchten. Sie möchten, dass der Dateityp erneut verfolgt wird.


210
2017-09-03 13:54



Fest. Ok, ich habe die .gitignore Datei in Notepad auf Windows erstellt und es hat nicht funktioniert. Als ich die .gitigore-Datei in Linux anschaute, sah es aus wie organisiertes Kauderwelsch - vielleicht hatte Notepad Unicode geschrieben und nicht ASCII oder was auch immer 8-Bit.

Also habe ich die Datei auf meiner Linux-Box neu geschrieben, und als ich sie wieder in Windows einfügte, funktioniert es gut! Hurra!


131
2017-07-12 12:30



Ohne ein weiteres Commit zu Ihrem Projekt hinzuzufügen, genügt eine Zeile .gitignore arbeiten wie es soll:

git rm -r --cached debug.log nbproject

Dadurch wird sie aus dem Repository entfernt, sie bleiben jedoch physisch in normalem Englisch. Sie löscht alle bisherigen Änderungen und ändert ihre Änderungen bei zukünftigen Commits nicht. Eine bessere Erklärung finden Sie vielleicht Hier.


77
2018-03-19 23:40



Eine weitere Ursache für dieses Problem sind leere Leerzeichen oder Tabulatoren vor der Anweisung:

Beispiel:

#Be aware of following:
 notWorkingIgnore.*
workingIgnore.*

Und wie unten im Kommentar erwähnt, kann ein Leerzeichen auch ein Problem sein

#Be aware of following:
notWorkingIgnore.* #<-Space
workingIgnore.*#<-Nospace

31
2017-12-23 01:48



Ich habe festgestellt, dass die Codierung der .gitignore hatte eine Wirkung - wenn die Datei Unicode war, wurde es ignoriert, wenn es ASCII war, war es nicht.

Verarbeiten:

  1. Überprüfen Sie den Status: PS> git status
  2. Erstellen Sie eine Funktion für Get-FileEncoding
  3. Prüfung .gitignores Codierung: PS> Get-FileEncoding .gitignore
  4. Ändern Sie die Codierung nach ASCII: PS> Set-Content .gitignore -Encoding Ascii -Value (Get-Content .gitignore)
  5. Bestätigen: PS> git status

27
2017-08-13 21:14



Wie bei den anderen Lösungen, verpflichten Sie sich zuerst und beachten Sie, dass Sie alle nicht festgeschriebenen Änderungen verlieren werden.

Ich hatte damit bessere Ergebnisse:

git rm -r --cached .
git reset HEAD --hard
git status

Beachten Sie, dass der Status jetzt keine geänderten Dateien enthalten sollte.


16
2017-11-14 23:13



Alle Antworten hier sind tatsächlich Workarounds. Sie müssen die Datei .gitignore VOR der Ausführung erstellen git init, Andernfalls git Sie werden nie wissen, dass Sie diese Dateien ignorieren müssen, weil sie bereits nachverfolgt wurden.

echo .idea/ >> .gitignore
git init

Wenn Sie sich täglich weiterentwickeln, rate ich Ihnen, Ihre gewohnheitsmäßig ignorierten Dateien zu Ihrer ~/.gitignore_global Datei. Dieser Weg, git weiß schon, welche Dateien Sie (dh "Ihr Benutzer", da es sich um eine Datei in Ihrem Home-Verzeichnis handelt) in der Regel ignorieren.


12
2017-11-25 21:21



Siehe auch die Verzeichnis, wo Sie .gitignore setzen Es sollte sein Wurzel Ihres Projekts:

./myproject/.gitignore

nicht in

./myproject/.git/.gitignore

11
2017-10-14 06:32