2016-09-17 2 views
0

Я хотел бы узнать коммиты для определенного файла из строки x в y. Следующая команда выводит изменения фиксации, но я хотел бы знать, как получить только первые 8 символов изменений фиксации, используя git-вину?Git винить фиксации изменений для конкретного файла определенного диапазона кода

git blame -L 50,60 filename.txt 

Пример вывода: 958d0dbf

Кроме того, в чем разница, когда я использую команду ниже против команды выше с точки зрения количества фиксаций для конкретного файла из строки х к у?

git log -L 50,60:filename.txt 

ответ

1

Чтобы получить только короткий совершить от git blame вы можете трубы через awk так:

git blame -L 50,60 filename.txt | awk '{print $1}' 

Это распечатывает первое поле из команды вины, которая в данном случае является обязательство.

Для вашего второго вопроса:

git log покажет вам все коммиты, в которых изменили эти строки.

git blame покажет только тех, кто изменил эти строки и в которых совершил последнее изменение. Вы никогда не узнаете об изменениях.

Вы можете передать дополнительные параметры в команду git log, чтобы обрезать свой вывод точно так, как вы хотите, или вы можете передавать его через другие команды, чтобы получить ваши результаты.

+0

Спасибо за помощь, я хотел бы спросить, знаете ли вы, как удалить дубликаты с выхода? :) – stackyyflow

+1

Удалить дубликаты труб через 'sort -u' – alexbclay