Вы когда-нибудь находили в своем коде изменение строки, вызывающее ошибку, и задавались вопросом, кто внес изменения в эту строку? К счастью, в git есть команда для этого! git blame
позволяет вам выбрать файл и показать, кто последним изменил каждую строку. Если вам интересно, она называется git blame
, потому что позволяет назначить виновного в нарушении кода, который вы исследуете.
Чтобы узнать, кто изменил строку, просто выполните следующую команду, где myfile.txt
— это файл, который вы хотите проверить:
git blame myfile.txt
Если вас интересует формат команды git blame
, то он выглядит следующим образом:
^665221a (Johnny Simpson 2022-04-30 20:58:04 +0100 10) import { v4 as uuid } from 'uuid';
^ ^ ^
| | |
Commit ID | Line number
|
Author and timestamp
- Использование git blame на определенной строке
- Другие полезные опции git blame
- Показ электронной почты автора с помощью git blame
- Игнорирование пробельных символов с помощью git blame
- Форматирование линий цветом с помощью git blame
- Показ имен файлов с помощью git blame
- Показ изменений строк снизу вверх (в обратном порядке) с помощью git blame
Использование git blame на определенной строке
Это действительно полезно, но что если вы хотите сосредоточиться на конкретной строке, вы можете использовать опцию -L
. Например, если вы хотите просмотреть историю изменений между строками 1 и 5, сделайте следующее:
git blame index.js -L 1,5
Или, если вы хотите найти историю изменений между строками 20 и 40, вы можете сделать следующее:
git blame index.js -L 20,40
Другие полезные опции git blame
Существует множество других полезных опций git blame
, которые вы можете использовать. Вот некоторые из них, которые я использую чаще всего, и что они делают.
Показ электронной почты автора с помощью git blame
Чтобы показать только адрес электронной почты автора, достаточно использовать опцию -e
:
git blame index.js -e
Вывод выглядит следующим образом:
^665221a (<some@email.com> 2022-04-30 20:58:04 +0100 8) import { fileURLToPath } from 'url'
Игнорирование пробельных символов с помощью git blame
Вы также можете игнорировать пробельные символы с помощью git blame
, если в вашем коде их много. Для этого вы можете использовать опцию -w
:
git blame index.js -w
Форматирование линий цветом с помощью git blame
По умолчанию git blame
выдает стену белого или черного текста. Если вы хотите различать разные коммиты и изменения по цвету, вы можете использовать --color-lines
или --color-by-age
:
Показ имен файлов с помощью git blame
Чтобы показать имя файла с помощью git blame
, используйте опцию -f
. Это покажет имя файла вместе с идентификатором фиксации.
git blame index.js -f
Вывод будет выглядеть следующим образом:
^665221a index.js (Johnny Simpson 2022-04-30 20:58:04 +0100 16) import dotenv from 'dotenv'
Показ изменений строк снизу вверх (в обратном порядке) с помощью git blame
Вы также можете показать изменения строк в обратном порядке с помощью git blame
, то есть начиная снизу и поднимаясь вверх. Просто добавьте опцию --reverse
к вашей команде:
git blame index.js --reverse