有没有办法让git commit --verbose在使用pre-commit钩子时显示更新的差异?

时间:2019-02-07 22:49:26

标签: python git commit verbose python-black

因此,我目前正在设置一个git pre-commit挂钩,以使用iSort和python Black来整理我的python文件,我遇到的问题是,当我使用git commit --verbose时,显示的差异在提交编辑器中,实际上并没有考虑到对暂存文件的修改。

例如,假设我有一个看起来像这样的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和黑色设置,我的预提交脚本将更改文件,如下所示:

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 commit编辑器中,它仍然显示未修改的diff。有什么方法可以使编辑器获得正确的输出?

从理论上讲,我认为这并不重要,但是很高兴看到差异实际上是什么。

1 个答案:

答案 0 :(得分:0)

而不是预先提交的挂钩,请尝试使用带有污迹/清除脚本的内容过滤器驱动程序,该脚本可以:

  • 在结帐时将脚本设为一种方式
  • 在提交时(或在git diff上)以另一种方式制作脚本

查看example here(for clean) here

https://i.stack.imgur.com/tumAc.png
(“ "Customizing Git - Git Attributes"Pro Git book的图片))