2013 Stimmen

Änderungen an der Arbeitskopie einer Datei in Git rückgängig machen?

Nach dem letzten Commit habe ich eine Reihe von Dateien in meiner Arbeitskopie geändert, aber ich möchte die Änderungen an einer dieser Dateien rückgängig machen, d.h. sie auf den Stand des letzten Commits zurücksetzen.

Ich möchte jedoch nur die Änderungen an der Arbeitskopie dieser einen Datei rückgängig machen, sonst nichts.

Wie kann ich das tun?

2643voto

Brian Campbell Punkte 304982

Sie können verwenden

git checkout -- file

Sie können es auch ohne die -- (wie von nimrodm vorgeschlagen), aber wenn der Dateiname wie eine Verzweigung oder ein Tag (oder ein anderer Revisionsbezeichner) aussieht, kann es zu Verwechslungen kommen, weshalb die Verwendung von -- ist am besten.

Sie können auch eine bestimmte Version einer Datei auschecken:

git checkout v1.2.3 -- file         # tag v1.2.3
git checkout stable -- file         # stable branch
git checkout origin/master -- file  # upstream master
git checkout HEAD -- file           # the version from the most recent commit
git checkout HEAD^ -- file          # the version before the most recent commit

207voto

nimrodm Punkte 21993

Verwenden Sie einfach

git checkout filename

Dadurch wird Dateiname durch die neueste Version aus dem aktuellen Zweig ersetzt.

WARNUNG: Ihre Änderungen werden verworfen - es wird kein Backup aufbewahrt.

154voto

neoneye Punkte 47046
git checkout <commit> <filename>

Ich habe das heute benutzt, weil ich gemerkt habe, dass mein Favicon vor ein paar Commits überschrieben wurde, als ich auf drupal 6.10 upgegradet habe, also musste ich es zurückholen. Hier ist, was ich tat:

git checkout 088ecd favicon.ico

100voto

thanikkal Punkte 3196

Wenn Ihre Datei bereits "staged" ist (passiert, wenn Sie ein git add etc. machen, nachdem die Datei bearbeitet wurde), um Ihre Änderungen zu entsperren.

Verwenden Sie

git reset HEAD <file>

Dann

git checkout <file>

Falls noch nicht vorhanden, verwenden Sie einfach

git checkout <file>

36voto

Shivanandam Punkte 1684

Ich habe es mit Git Bash gemacht:

(use "git checkout -- <file>..." to discard changes in working directory)

  1. Git-Status. [Wir haben also gesehen, dass eine Datei geändert wurde.]
  2. git checkout -- index.html [Ich habe in der Datei index.html geändert:
  3. Git-Status (diese Änderungen wurden jetzt entfernt)

enter image description here

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