所以我目前正在设置一个 git pre-commit 钩子(Hook)来使用 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 提交编辑器中它仍然显示未修改的差异。有什么方法可以让编辑器获得正确的输出吗?
理论上我想这无关紧要,但很高兴看到实际差异是什么。
最佳答案
代替预提交 Hook ,尝试使用内容过滤器驱动程序,使用污迹/清理脚本,它可以:
- 在 checkout 时以一种方式制作脚本
- 在提交时(或在 git diff 上)以另一种方式制作你的脚本
查看 example here或 (for clean) here
(图片来自 "Customizing Git - Git Attributes" 来自“Pro Git book ”))
关于python - 有没有办法让 git commit --verbose 在使用预提交 Hook 时显示更新的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54583516/