Сбежать с помощью \-
должно быть хорошо, но вы также можете попробовать поставить его в начале или в конце класса символов. Это должно работать для вас:
/^[a-zA-Z0-9._-]+$/
Краткое и сладкое:
git config --global diff.tool meld
Это конфигурирует Git на использование meld
в качестве инструмента сравнения. (Аргументы командной строки указывать не нужно, поддержка meld
встроена в Git)
Тогда, если вам нужен графический diff вместо текстового, вы просто вызываете git difftool
вместо git diff
(они оба принимают одни и те же аргументы). В вашем случае:
git difftool master..devel
Обновление: Если вы не хотите использовать однофайловую разницу, а хотите использовать "поддиректориальный" вид meld со всеми изменениями между двумя ветвями, обратите внимание на опцию -d
или --dir-diff
для git-диффтоола
. Например, когда я нахожусь на ветке XYZ и хочу посмотреть, чем эта ветка отличается от ветки ABC, я запускаю следующее:
git difftool -d ABC
Хотя из других ответов кажется, что на данный момент нет способа сделать это непосредственно в git-репозитории, легко (благодаря ответу на другой вопрос :)) написать скрипт, который будет извлекать деревья двух коммитов во временные каталоги и запускать meld на них, удаляя оба каталога при выходе meld:
http://gist. github.com/498628
Конечно, вы потеряете все изменения, сделанные с помощью meld, но для быстрого обзора различий это, по-моему, неплохо.