Wie entferne ich einen Verzeichnis-Teilbaum aus dem Staging-Bereich?

Lesezeit: 2 Minuten

Benutzer-Avatar
Eichel

Ich habe ein neues Repository erstellt und ausgeführt git add -A. Dann bemerkte ich, dass es einen Ordner mit etwa 100 Dateien gab, die nicht hätten enthalten sein sollen, also fügte ich ihn hinzu .gitignore.

Wie räume ich jetzt den Staging-Bereich frei, damit ich kann add alle meine Dateien wieder unter Berücksichtigung der aktualisierten .gitignore?

  • Wenn Sie Ihren ersten Commit noch NICHT durchgeführt haben, blasen Sie den .git-Ordner weg. Erstellen Sie die .gitignore-Datei mit dem richtigen Inhalt. Von vorn anfangen. git init, stage, commit.

    – Gishu

    27. März 2013 um 7:51 Uhr

In #git sagten Sie, Sie hätten versehentlich ein Verzeichnis hinzugefügt, das hätte ignoriert werden sollen, also führen Sie es aus

git rm --cached -r directory-name

um den verwurzelten Baum rekursiv zu entfernen directory-name aus dem Index.

Aktualisieren nicht vergessen .gitignore!

  • Möchten -r . einfacher sein und dasselbe tun?

    – Jonathan Allard

    16. September 2012 um 19:32 Uhr

  • können Sie erwähnen, warum das –cached notwendig ist? Ich verstehe nicht, warum es so ist

    – Alexander Mills

    30. Mai 2015 um 1:06 Uhr

  • @AlexMills Die Frage gab ein Verzeichnis an, das mit hinzugefügt wurde git add in den Staging-Bereich, auch bekannt als Cache oder Index. Laut dem git rm Dokumentation an --cached: „Verwenden Sie diese Option, um die Bereitstellung aufzuheben und nur Pfade aus dem Index zu entfernen. Arbeitsbaumdateien, ob geändert oder nicht, werden in Ruhe gelassen.“

    – Greg Bacon

    10. November 2015 um 1:42 Uhr


Sie können einfach den Befehl verwenden:

git reset

  • fatal: Failed to resolve 'HEAD' as a valid ref. Ich nehme an, es gibt nichts zurückzusetzen zu noch?

    – Eichel

    19. März 2011 um 3:29 Uhr

  • @Eichel, richtig. Ich wusste nicht, dass Sie sich noch nicht für das neue Repo entschieden haben.

    – Matthäus Flaschen

    19. März 2011 um 3:48 Uhr


  • In diesem Fall würde ich einfach rm -rf .git && git init . und neu anfangen.

    – Jim Mitchener

    19. März 2011 um 3:51 Uhr

  • Dadurch wird alles zurückgesetzt und nicht nur der bestimmte Ordner.

    – Schwarz

    19. Mai 2018 um 14:59 Uhr

Benutzer-Avatar
Busverbindungen

Denken Sie daran, die zu setzen s in --global core.excludesfile .gitignore.txt

excludesfile vs excludefile

Vielleicht rettet das jemand anderem die Stunde, die ich verloren habe…

Mit einer ziemlich modernen Git-Version können Sie jetzt Folgendes tun:

git reset foldername/*

Ich habe die früheste Dokumentation für diese Funktion ab Version 2.12.5 gefunden, aber sie funktioniert möglicherweise auch mit älteren Versionen von Git.

1314710cookie-checkWie entferne ich einen Verzeichnis-Teilbaum aus dem Staging-Bereich?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy