我希望要求将SVG文件单独提交以保持其他内容的差异输出更加清晰。例如,我不想允许像这样的提交:
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: src/css/main.css
modified: src/images/example.svg
modified: src/index.html
这个问题能用 pre-commit 钩子完成吗?该如何编写它?
编辑:我认为 git ls-files -dmo
在这里会很有用,但我不知道如何编写脚本来解析它的输出。
.svg
文件的更改分离成它们自己的提交会违反原子提交的原则。相反,我现在使用了一个包含行*.svg -diff
的.gitattributes
文件。这告诉Git将.svg
文件视为二进制文件,因此它将输出“二进制文件不同”作为差异消息。 - Jordan Bradford