Git blame — Как узнать, кто изменил строку с помощью Git

Вы когда-нибудь находили в своем коде изменение строки, вызывающее ошибку, и задавались вопросом, кто внес изменения в эту строку? К счастью, в 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 на определенной строке

Это действительно полезно, но что если вы хотите сосредоточиться на конкретной строке, вы можете использовать опцию -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
Войти в полноэкранный режим Выйти из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий