2012-05-31 7 views
28

W Git GUI mogę wybrać części diff i ustawić tylko te linie lub kawałki. Jak mam zrobić coś odwrotnego, jak w przypadku cofnięcia zmienionych linii w pliku. Zwykle są to przypadkowe białe zmiany przestrzeni, które po prostu chcę wycofać, ale nadal etapować/zatwierdzać inne części tego samego pliku.Git Diff - Jak mogę przywrócić wybrane linie lub porcje?

+0

git interaktywny dodaj Wierzę lub http://stackoverflow.com/questions/1085162/how-can-i-commit-only-part-of-a-file-in-git –

+0

Jest odwrotnie. Wprowadza zmiany, ale musisz przywrócić plik. – Kenoyer130

+0

http://stackoverflow.com/questions/1981830/undo-part-of-startstaged-changes-in-git –

Odpowiedz

4

Dla Git Gui: Najpierw kliknij Skanuj ponownie, aby wyszukać zmodyfikowany plik. Następnie kliknij ikonę po lewej stronie nazwy pliku, aby wyświetlić wszystkie modyfikacje dotyczące zatwierdzenia. Następnie kliknij prawym przyciskiem myszy na linię debugowania i wybierz Unstage Line From Commit.

Powyższe informacje od: http://nathanj.github.com/gitguide/tour.html

+1

To faktycznie nie przywraca niczego w pliku. –

45

etapie częściami chcesz z git add -p, a następnie wyrzucić (git checkout -- filename) z Unstaged zmian.

+2

Wiem, że pytanie dotyczy Git Gui, ale dziękuję bardzo za udostępnienie alternatyw dla użytkowników linii poleceń. Prosty w użyciu. –

7

W Git GUI

  1. Stage cały plik, który zawiera niepożądaną zmianę (-y)
  2. Unstage Linie/bryły, które mają zostać przywrócone
  3. Wybierz plik w panelu Unstaged Zmiany i komisje> Przywróć zmiany aby cofnąć wszystkie (Unstaged) zmiany w tym pliku

Źródło: http://git.661346.n2.nabble.com/Revert-hunk-td4991128.html

+0

Rekwizyty odpowiadające na pytanie w tytule i robiące to za pomocą 'git gui'. Bardzo pomocne. – mattgately

+0

Dzięki za to ... to działa. Jednak git gui sprawia, że ​​tęsknię za przedłużeniem git. –