2013-09-11 3 views
5

Предположим, я добавил две строки в файл hello.rb.Git diff без комментариев

# this is a comment 
puts "hello world" 

Если я git diff, это покажет, что я добавил две строки.

Я не хочу, чтобы git показывал любую строку, которая является комментарием Ruby. Я пробовал использовать git diff -G <regular expression>, но это не сработало для меня. Как мне сделать git diff, чтобы он не показывал никаких комментариев Ruby?

+4

Наверное, не идеи, но для вас можно было сделать git diff | grep -v "^ + \ s * #" 'в зависимости от вашего варианта использования. – Dogbert

+2

Нет ничего встроенного в Git, который сделает это. Это несколько сложно, так как комментарии различны на каждом языке и определяют, действительно ли строка является комментарием или просто выглядит как еще труднее без разбора файлов. Этот вопрос задавался в Stack Overflow несколько раз, но я не хочу ссылаться ни на один из них, потому что я не вижу удовлетворительных ответов. –

+1

@ JimStewart, хотя настройка http://stackoverflow.com/a/8291327/6309 была бы хорошим началом. – VonC

ответ

3

Git много заботится о данных, которые вы ему даете, и пытается действительно не потерять любой информации. Для Git нет смысла обрабатывать некоторые строки, как если бы они не изменились, если бы они были.

Я думаю, что единственный разумный способ сделать это - обработать Git-вывод, как показал Соберберг в своем комментарии.