Я хочу запустить diff между коммитом и моими локальными файлами, используя внешний diff-инструмент, без временных файлов для моего локального. Я запускаю git на Windows.
В настоящее время я пытаюсь это сделать с помощью: git difftool --dir-diff <commit> -- <path_to_local_dir>
. Этот подход работает нормально, однако <path_to_local>
затем представляется папкой temp в AppData. Для большинства случаев это нормально.
Однако, используя внешний инструмент сравнения (в моем случае BeyondCompare4), инструмент сравнения предоставляет функциональность «Копирование», определяя, что c изменяется с <commit>
на <path_to_local>
. Вот тут-то и возникает моя проблема. Если Git принудительно использует папки temp для локальных файлов, такое поведение "Копирование" бесполезно, поскольку оно изменяет только временные файлы.
Я знаю Я мог бы написать скрипт, который копирует содержимое temp в мои локальные файлы после сохранения, но я ищу более элегантное решение.
В качестве идентификатора Mercurial поддерживает запрашиваемое поведение по умолчанию (создает временные файлы только тогда, когда локальные файлы еще не существуют)
Итак, вкратце, есть ли способ заставить git difftool
фактически использовать локальные файлы вместо создания и использовать временные файлы для моих локальных файлов, которые уже существуют?
Редактировать: Word Usage