Naprawdę podoba mi się rozwiązanie Tima, jednak czasami lubię majsterkować w vimdiff. Moje rozwiązanie tego problemu jest prymitywne, ale działa dla mnie, ponieważ lubię vim.
Mam ustawionego vimdiffa jako moje difftool, a następnie, aby selektywnie scalić, odróżniam gałąź:
git difftool <branch> <file>
Następnie przechodzę do okienka z wersją bieżącej gałęzi i edytuję oryginał w vimie (czasami nie jest to konieczne, ale czasami vimdiff otwiera wersję w / tmp) i wyłączam tryb tylko do odczytu:
:e <file>
:set readonly!
Teraz mogę używać narzędzi łatek Vima, takich jak do
i, dp
aby zastosować to, co chcę, i wprowadzać inne drobne zmiany w trakcie. Kiedy skończę, zapisuję plik, wychodzę z vima, a następnie umieszczam i zatwierdzam plik w git jak zwykła edycja.
Jak powiedziałem, nie jest to szczególnie wyrafinowane, ale jest bardzo potężne i nadal działa wyłącznie w wierszu poleceń. Po prostu upewnij się, że dodałeś wyraźną wiadomość o zatwierdzeniu, ponieważ git nie dołączy automatycznie wiadomości o scaleniu.
przykład vimdiff http://j.mp/1dZVllt