Почему «git difftool» не открывает инструмент напрямую?


157

Я настроил gitтак:

git config --global diff.tool meld

Когда я бегу:

git difftool

Я получаю следующее сообщение:

Viewing: 'hello.txt'
Hit return to launch 'meld': 

Затем, если я нажму Enter, meldзапустит.

Как я могу отключить это сообщение, чтобы meldоно запускалось сразу после ввода git difftool?



4
Я также считаю правильным вопрос: почему по умолчанию требуется дополнительное одобрение?
Радек Постолович

Ответы:


64
man git-difftool

OPTIONS
   -y, --no-prompt
       Do not prompt before launching a diff tool.

20
Ответ @ZJR кажется наиболее предпочтительным ответом большинства людей (включая меня).
Йоно

1
Ссылка на ответ ZJR (в случае изменения имени пользователя): stackoverflow.com/questions/7897517/…
Питер Мортенсен

лучше ответ ниже.
m1m1k

@ m1m1k Лучший комментарий выше :-)
Дункан Джонс

379

Также есть опция:

difftool.prompt
  Prompt before each invocation of the diff tool.

Следующая команда отключает подсказку глобально (для всех репозиториев):

git config --global difftool.prompt false

Что похоже на запись в ~/.gitconfig:
(или в %HOMEDRIVE%%HOMEPATH%\.gitconfig)

[difftool]
  prompt = false

16
Это правильное решение. Ответ помечен как решение, не сохраняет нажатий клавиш. Большое спасибо.
sweisgerber.dev

2
@sebweisgerber Я просто перефразировал отмеченный ответ и обнаружил, как сделать его постоянным. Я бы не нашел вариант иначе.
ZJR

1
Это лучший ответ, потому что он будет обрабатывать регистр как действие по умолчанию, что позволит автору вопросов продолжать использовать git-difftool так, как они хотят.
Нил Монро

На самом деле --addвариант здесь неуместен. Это означает добавление параметра «prompt = false» к любым уже существующим записям «promt», тогда как цель состоит в том, чтобы заменить текущее значение или добавить его в первую очередь. Такое поведение достигается без --add.
user905686

17
Убедитесь, что вы не propmt = falseпопали в раздел [difftool "toolname"] `случайно. Не работает Это должно быть в [difftool]разделе.
Фосна
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.