预提交 (pre-commit.com) 挂钩可以将文件添加到提交吗?
Can a pre-commit (pre-commit.com) hook add files to a commit?
可以预提交挂钩(使用预 commit.com)将文件添加到提交吗?
我的用例:我在 jupyter notebooks 上工作。在提交时,我想 生成并 git-add 提交中任何 ipynb
文件的 html 版本。
例如提交挂钩:
- repo: local
hooks:
- id: nb-as-html
name: nb-as-html
stages: [commit]
language: system
verbose: false
pass_filenames: false
always_run: true
entry: find devtools \( -name \*.ipynb -not -name \*checkpoint.ipynb \) -type f -exec jupyter nbconvert --to HTML {} \;
并以某种方式将文件添加到提交中。
我该怎么做?或者预提交不适合这个?
可以在 pre-commit
挂钩中添加文件,但不建议这样做。 Git 开发人员通常会解决此工作流程中出现的问题,但他们并不乐意这样做,也不鼓励这样做。此外,用户不会期望您这样做,并且可能对您这样做不满意。由于在克隆存储库时不会克隆挂钩(因为这将允许执行任意代码),因此您也不能假设其他贡献者会 运行 它们。
此外,您应该避免将生成的文件完全提交到存储库。这往往会使存储库膨胀,并在合并或变基发生时引起冲突。您最好在 CI 中生成此文件并将其上传到其他地方。
可以预提交挂钩(使用预 commit.com)将文件添加到提交吗?
我的用例:我在 jupyter notebooks 上工作。在提交时,我想 生成并 git-add 提交中任何 ipynb
文件的 html 版本。
例如提交挂钩:
- repo: local
hooks:
- id: nb-as-html
name: nb-as-html
stages: [commit]
language: system
verbose: false
pass_filenames: false
always_run: true
entry: find devtools \( -name \*.ipynb -not -name \*checkpoint.ipynb \) -type f -exec jupyter nbconvert --to HTML {} \;
并以某种方式将文件添加到提交中。
我该怎么做?或者预提交不适合这个?
可以在 pre-commit
挂钩中添加文件,但不建议这样做。 Git 开发人员通常会解决此工作流程中出现的问题,但他们并不乐意这样做,也不鼓励这样做。此外,用户不会期望您这样做,并且可能对您这样做不满意。由于在克隆存储库时不会克隆挂钩(因为这将允许执行任意代码),因此您也不能假设其他贡献者会 运行 它们。
此外,您应该避免将生成的文件完全提交到存储库。这往往会使存储库膨胀,并在合并或变基发生时引起冲突。您最好在 CI 中生成此文件并将其上传到其他地方。