Ich habe einige meiner Dateien in meinem lokalen Repo geändert und dann, wie git add -A
ich glaube, zu viele Dateien zum Staging-Bereich hinzugefügt. Wie kann ich alle Dateien aus dem Staging-Bereich löschen?
Nachdem ich das getan habe, mache ich es einfach manuell git add "filename"
.
git status
sagt Ihnen bereits genau, was zu tun ist, wenn Sie Dateien entfernen möchten.git add -p
oder vertraut machengit add --patch
(sie sind gleich). Mit diesem Flag können Sie interaktiv auswählen, welche Dateien oder einzelnen Änderungen Sie bereitstellen möchten. Anschließend können Sie die Arbeit, die Sie in das Commit aufnehmen, genauer bestimmen.Antworten:
Sie können Dateien aus dem Index entfernen, indem Sie
Genauso wie
git add
Sie Dateien rekursiv nach Verzeichnis usw. entfernen können. Um alles auf einmal zu entfernen, führen Sie dies aus dem Stammverzeichnis Ihres Repositorys aus:git status
Zur späteren Bezugnahme werden Ihnen in der Ausgabe von die Befehle angezeigt, die Sie ausführen müssen, um Dateien von einem Status in einen anderen zu verschieben.quelle
$ git reset HEAD -- .
produziertfatal: Failed to resolve 'HEAD' as a valid ref.
Beachten Sie, dass ich nie ein Commit gemacht habe; Es ist das erstegit add
nachgit init
git reset @
.git reset
?@
ist gleichbedeutend mitHEAD
.Verwenden
alle inszenierten Dateien zu entfernen.
quelle
git reset HEAD --
oder ist es einfach eine prägnantere Art, dieselbe Operation auszuführen?HEAD
wird standardmäßig verwendet. Was ist der Zweck von denen--
in Ihremgit reset HEAD --
?git reset HEAD -- .
unterscheidet sich darin, dass nur Dateien im aktuellen Verzeichnis und darunter zurückgesetzt werden, währendgit reset
alle Dateien im Projekt zurückgesetzt werden.Wenn Sie bereits eine Reihe unerwünschter Dateien festgeschrieben haben, können Sie sie entfernen und git anweisen , sie als gelöscht zu markieren (ohne sie tatsächlich zu löschen)
--cached
Weist es an, die Pfade aus dem Staging und dem Index zu entfernen, ohne die Dateien selbst zu entfernen, und verarbeitet-r
Verzeichnisse rekursiv. Sie können danngit add
alle Dateien, die Sie verfolgen möchten.quelle
rm
zum Aufheben der Bereitstellung aller Dateien zu erwähnen.--cached
ist wirklich zu stoppen, Dateien zu verfolgen, die Sie bereits festgeschrieben haben. Die Datei wird also nicht wirklich gelöscht, aber Git glaubt, dass dies der Fall ist. Ich habe dies in meiner Antwort klargestellt.Du könntest benutzen
Fügen Sie dann die gewünschten Dateien hinzu
quelle
git status
wird Ihnen das Arbeitsverzeichnis bereinigt - Lügen!git clean -df
hat diesen Job gemacht, danke.git clean -df
Dateien dauerhaft gelöscht werden. Auf UNIX-ähnlichen Systemen wird es aufgerufenunlink()
und Ihre gelöschten Dateien können nicht wiederhergestellt werden.Wie in anderen Antworten angegeben, sollten Sie verwenden
git reset
. Dies macht die Aktion des rückgängiggit add -A
.Hinweis:
git reset
entspricht dem,git reset --mixed
was dies tutquelle
git reset filenameToNotCommit
Jetzt bei v2.24.0 schlägt vor
Dateien zu entfernen.
quelle
Sie können den Staging-Bereich auf verschiedene Arten zurücksetzen:
Setzen Sie HEAD zurück und fügen Sie alle erforderlichen Dateien zum erneuten Einchecken wie folgt hinzu:
quelle
So entfernen Sie alle Dateien aus dem Staging-Bereich: -
git reset
So entfernen Sie bestimmte Dateien:
git reset "File path"
quelle
verwenden
Dadurch werden alle Dateien aus dem Staging-Bereich entfernt
quelle
Wenn unerwünschte Dateien zum Staging-Bereich hinzugefügt, aber noch nicht festgeschrieben wurden, führt ein einfacher Reset die Aufgabe aus:
Verwenden Sie Folgendes, um nur nicht bereitgestellte Änderungen im aktuellen Arbeitsverzeichnis zu entfernen:
quelle
Verwenden "
git reset HEAD <file>...
", um Dateien zu entfernenBeispiel: Alle Dateien entfernen
eine Datei entfernen
quelle
Ich habe all diese Methoden ausprobiert, aber keine hat bei mir funktioniert. Ich entfernte .git Datei mit
rm -rf .git
dem lokalen Repository Form und dann wieder tatgit init
undgit add
und Routine Befehle. Es funktionierte.quelle
Der beste Weg, um Ihre Datei, die sich bereits im Staging-Bereich befindet, rückgängig zu machen, ist git reset --hard, wodurch Ihre bereitgestellten Dateien zurückgesetzt werden. Vorsicht, jetzt werden abgestufte und nicht bereitgestellte Änderungen entfernt.
quelle
--hard
löscht sie jedoch für immer.