11450 Stimmen

Wie kann ich "git add" vor der Übertragung rückgängig machen?

Ich habe versehentlich Dateien mit dem Befehl zu Git hinzugefügt:

git add myfile.txt

Ich habe noch nicht ausgeführt git commit . Gibt es eine Möglichkeit, dies rückgängig zu machen, so dass diese Dateien nicht in die Übertragung aufgenommen werden?

57 Stimmen

Beginnend mit Git v1.8.4 werden alle folgenden Antworten, die HEAD o head können nun @ anstelle von HEAD 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".

11voto

miva2 Punkte 2013

In Sourcetree können Sie dies einfach über die grafische Benutzeroberfläche tun. Sie können überprüfen, welchen Befehl Sourcetree verwendet, um eine Datei freizugeben.

Ich habe eine neue Datei erstellt und sie zu Git hinzugefügt. Dann habe ich sie mit der Sourcetree-GUI entstaged. Das ist das Ergebnis:

Unstaging von Dateien [08/12/15 10:43] git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree reset -q -- path/to/file/filename.java

Sourcetree verwendet reset um neue Dateien freizugeben.

1 Stimmen

Ja, die gleiche Technik kann auch bei TortoiseGit , um die Git-Befehle für die häufigsten Anwendungsfälle zu erhalten.

9voto

Marcin Szymczak Punkte 10413

Eine der intuitivsten Lösungen ist die Verwendung von Quellennachweis .

Sie können Dateien einfach per Drag&Drop aus bereitgestellten und nicht bereitgestellten

Enter image description here

7voto

SAIguru011 Punkte 476

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X