gradle 在预提交钩子中执行提交

xzabzqsa  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(174)

我使用这个pre-hook脚本是因为我运行了一个编辑一些类的任务,然后我会自动添加所有编辑过的文件并提交它们,但结果是提交完成了,然后文件被添加但没有提交。它们似乎是在提交之后而不是之前添加的。
脚本是这样的:

#!/bin/bash 
pwd
cd application 
echo "Running Lint and Spotless" 
bash gradlew lint spotlessApply
git add *

我怎么能这么做呢?

okxuctiv

okxuctiv1#

git-add(1)更改索引。你不应该在预提交脚本中改变索引。它可能工作,但它是未定义的行为。
See
仅供参考,我们尽量不做额外的重读,因为预提交钩子被设计成一种机制,允许用户验证,但不是正确的,什么被提交。由于系统最初的设计,正确使用Git的用户不会修改索引。因为修改钩子中的索引是错误的,所以(1)在用户犯了这样的错误的情况下重新读取索引是浪费资源,并且(2)检查索引以确保它在调用钩子之前和之后没有改变,同样也是浪费资源。
在某些情况下,我们重新阅读索引可能是一个错误,这增加了混乱,但不是其他人。

相关问题