如何在git add之前自动调用脚本?

Lab*_*cle 15 git hook gitattributes

这是我的用例:我在我的Git仓库中提交了PNG和其他东西.我想对我想要提交的每个PNG应用一个特定的进程,这是我最终想要提交的进程的结果(可能修改的PNG).

一开始我想到了一个钩子(比如a pre-commit),但它有点奇怪,因为这个过程会改变文件,所以我需要重新添加它!根据我所读到的,没有pre-add钩子(或类似的东西).

可能是一个解决方案是创建一个git别名?但我不想改变 - 太多 - 人们的工作方式,我正在寻找一种平稳透明的方式.

如果你有线索......即使线索是改变我的过程想法.

dls*_*sso 7

也许有充分的理由使用它clean,但是实际上并没有阻止您在pre-commit挂接期间重新添加文件的方法,我认为这有点直观。

pre-commit将看起来像:

*run your PNG processing here* (after processing completes) git add *.png

提交将照常继续。如果您想花哨的话,可以exit 1在压缩出现问题时将其放入其中,这将停止提交。


Phi*_*ley 5

你可能要考虑污迹和清洁过滤器,用cleangit的添加,并在结帐时涂抹过程中被应用.这些可以按文件类型分配.查看'git attributes(5)'手册页和Git SCM书:Git Attributes.

  • 由于页面很长,在这里总结一下方法会很有用(我尝试过使用它,但没有成功)。 (2认同)