it-swarm.com.de

Git Diff - Wie stelle ich ausgewählte Linien oder Blöcke wieder her?

In Git GUI kann ich Teile eines Diffs auswählen und nur diese Zeilen oder Chunks inszenieren. Wie würde ich das Gegenteil tun, da sich in einer Datei geänderte Zeilen zurückrollen. Normalerweise handelt es sich dabei um versehentliche Leerraumänderungen, die ich einfach wiederherstellen möchte, aber noch andere Teile derselben Datei festschreiben.

29
Kenoyer130

Für Git Gui: Klicken Sie zunächst auf Rescan, um nach der geänderten Datei zu suchen. Klicken Sie anschließend auf das Symbol links neben dem Dateinamen, um alle Änderungen für das Commit durchzuführen. Klicken Sie dann mit der rechten Maustaste auf die Debug-Zeile und wählen Sie "Unstage Line From Commit".

Die obigen Informationen von: http://nathanj.github.com/gitguide/tour.html

3
Anil

Stellen Sie die gewünschten Teile mit git add -p bereit, und verwerfen Sie (git checkout -- filename) die nicht bereitgestellten Änderungen.

Update für Git 1.6.5+

In Version 1.6.5 lernte Git das Auschecken mit einem -p/--patch-Flag. Sie können Chunks mit git checkout -p -- filename in einem Schritt verwerfen.

Von den Dokumenten :

Wählen Sie interaktiv Hunks in der Differenz zwischen dem <tree-ish> (oder dem Index, falls nicht angegeben) und dem Arbeitsbaum aus. Die ausgewählten Hunks werden dann umgekehrt auf den Arbeitsbaum angewendet (und wenn ein <tree-ish> angegeben wurde, der Index).

Das bedeutet, dass Sie git checkout -p verwenden können, um Bearbeitungen in Ihrem aktuellen Arbeitsbaum selektiv zu verwerfen.

53
ellotheth

In Git Gui 

  1. Bereitstellen der gesamten Datei, die die unerwünschten Änderungen enthält
  2. Stellen Sie die Linien/Hunks wieder her, die Sie zurücksetzen möchten
  3. Wählen Sie die Datei im Bereich Unstaged Changes aus und Commit-> Revert Changes , um alle (unstaged) Änderungen an dieser Datei rückgängig zu machen

Quelle: http://git.661346.n2.nabble.com/Revert-hunk-td4991128.html

11
Leif Gruenwoldt

Ich benutze git stash -p für diesen Zweck. Es hat den Nebeneffekt, dass mit den Änderungen, die aus dem Arbeitsbaum entfernt wurden, ein Stash erstellt wird. Dies ist gelegentlich hilfreich, um sie schnell wiederherzustellen.

0
Matt Zimmerman