Есть ли способ получить git commit --verbose для отображения обновленного diff при использовании хуков pre-commit?
Поэтому в настоящее время я настраиваю git pre-commit hook для связывания моих файлов python с помощью iSort и python Black, проблема, с которой я сталкиваюсь, заключается в том, что при использовании git commit --verbose
diff, который отображается в редакторе коммитов, фактически не учитывает изменения в промежуточных файлах.
Например, допустим, у меня есть файл Python, который выглядит так:
import re
from os import path
def x():
v = re.compile(r"1")
print(3, v)
def y(v=3):
z = path.join("a", "b")
thing = "a string"
print(thing, z)
Исходя из настроенных настроек iSort и black, мой сценарий предварительной фиксации изменит файл таким образом:
import re
from os import path
def x():
v = re.compile(r"1")
print(3, v)
def y(v=3):
z = path.join("a", "b")
thing = "a string"
print(thing, z)
К сожалению, в редакторе коммитов git он все еще показывает неизмененный diff. Есть ли какой-нибудь способ заставить редактор иметь правильный вывод?
Теоретически, я думаю, это не имеет значения, но было бы неплохо увидеть, какой будет разница в действительности.
1 ответ
Вместо ловушки перед фиксацией попробуйте вместо этого драйвер фильтра содержимого с помощью сценария smudge/clean, который может:
- на кассе сделать свой сценарий в одну сторону
- при коммите (или в git diff) сделайте ваш скрипт другим способом
Смотрите пример здесь или (для чистого) здесь
(изображение из "Настройки Git - атрибутов Git" из " Книги Pro Git ")