Ответ 1
Один из способов - использовать vc
как предложено этим связанным ответом - в частности C-u C-x v =. Тем не менее, это возвращает буфер без возможности (un) сбрасывать куски.
Как я могу получить разницу между двумя коммитами файла того же, используя magit
?
Непосредственно из git
можно сделать этот. Но я не знаю, как это сделать изнутри magit
. Из magit-status
кажется, что d
и d
возвращает diff для всего репозитория. Это очень проблематично для меня, поскольку хранилище огромно и вызывает magit
(и, в свою очередь, emacs
), чтобы перестать отвечать на запросы. Можно ли запросить magit
ограничить поиск только одним файлом из репозитория?
Я также пробовал в буфере magit-status
сделать : diff $start_commit..$end_commit -- path/to/file
. Это работает, но выход представляет собой простой буфер без подсветки или каких-либо вариантов сгибания...
Один из способов - использовать vc
как предложено этим связанным ответом - в частности C-u C-x v =. Тем не менее, это возвращает буфер без возможности (un) сбрасывать куски.
В случае, если кто-то споткнутся об этом сейчас, теперь можно сделать это в magit (я делаю это из magit-log, но вы, вероятно, можете сделать это и из других источников):
d
, чтобы открыть magit-diff-popup=f
, чтобы указать файл, который вы хотите просмотреть (введите путь относительно корневого каталога проекта)r
, чтобы выполнить диапазон разности. Вам будет задан диапазон фиксации, например, 4abcde2..HEAD
. Альтернативно, если вы выделите диапазон коммитов в magit-log, диапазон будет установлен для вас автоматически без приглашения.Таким образом, вы попадаете в буфер magit-diff с подсветкой и складыванием кода.