Le site git reset
können Sie entweder den Staging-Bereich oder den Staging-Bereich und den Arbeitsbaum ändern. Da Git in der Lage ist, Commits genau so zu erstellen, wie Sie es wünschen, müssen Sie manchmal Änderungen an den Änderungen rückgängig machen, die Sie mit git add
.
Sie können dies tun, indem Sie git reset HEAD <file to change>
. Sie haben zwei Möglichkeiten, die Änderungen vollständig zu beseitigen. git checkout HEAD <file(s) or path(s)>
ist ein schneller Weg, um Änderungen an Ihrem Staging-Bereich und Arbeitsbaum rückgängig zu machen.
Seien Sie jedoch vorsichtig mit diesem Befehl, da er alle Änderungen an Ihrem Arbeitsbaum entfernt. Git weiß nichts von diesen Änderungen, da sie nie committed wurden. Es gibt keine Möglichkeit, diese Änderungen zurückzubekommen, nachdem Sie diesen Befehl ausgeführt haben.
Ein weiterer Befehl, der Ihnen zur Verfügung steht, ist git reset --hard
. Es ist ebenso zerstörerisch für Ihren Arbeitsbaum - alle nicht übertragenen Änderungen oder abgestuften Änderungen sind nach der Ausführung verloren. Ausführen von git reset -hard HEAD
tut das Gleiche wie git checkout HEAD
. Es braucht nur keine Datei oder einen Pfad, um zu funktionieren.
Sie können verwenden --soft
con git reset
. Es setzt das Repository auf den von Ihnen angegebenen Commit zurück und stellt alle Änderungen bereit. Änderungen, die Sie bereits bereitgestellt haben, sind davon nicht betroffen, ebenso wenig wie die Änderungen in Ihrem Arbeitsbaum.
Schließlich können Sie mit --mixed
um den Arbeitsbaum zurückzusetzen, ohne Änderungen vorzunehmen. Dies hebt auch die Bereitstellung von Änderungen auf, die bereits bereitgestellt wurden.
57 Stimmen
Beginnend mit Git v1.8.4 werden alle folgenden Antworten, die
HEAD
ohead
können nun@
anstelle vonHEAD
stattdessen. Siehe diese Antwort (letzter Abschnitt) um zu erfahren, warum Sie das tun können.5 Stimmen
Ich habe eine kleine Übersicht erstellt, die alle Möglichkeiten zum Aufheben einer Datei zeigt: stackoverflow.com/questions/6919121/
8 Stimmen
Wenn Sie Eclipse verwenden, ist es so einfach wie das Entfernen der Markierung der Dateien im Dialogfeld "Übertragen".
3 Stimmen
Dies ist eine großartige Ressource direkt von Github: Wie man (fast) alles mit Git rückgängig macht
4 Stimmen
Bevor Sie eine neue Antwort schreiben, bedenken Sie, dass es bereits mehr als 25 Antworten auf diese Frage gibt. Vergewissern Sie sich, dass Ihre Antwort einen Beitrag leistet, der nicht in den vorhandenen Antworten enthalten ist
0 Stimmen
Ich schaffe das immer, indem ich
git reset <file_name>
. Weitere Informationen finden Sie unter dieser Artikel .0 Stimmen
Wenn Leser die grafische Benutzeroberfläche verwenden möchten, können Sie mit der rechten Maustaste auf eine Datei klicken und auf "Zurücksetzen" oder "Unstage" klicken.
0 Stimmen
git rm --cached <file>
entschärft und entschärft (zum Entfernen bei der nächsten Übertragung markiert) eine bestimmte Datei, währendgit reset HEAD <file>
nur unstages die Datei0 Stimmen
Für Leute, die mit großen Repos arbeiten, können Sie auch einfach den Git-Hinzufügungsprozess abbrechen und es wird automatisch zurückgesetzt.