Git 预提交 运行 提交后?

Git pre-commit running after commit?

我正在尝试 运行 在提交代码之前对代码进行格式化命令。我希望它在未格式化的情况下不允许提交,或者在提交之前自动执行。

现在发生的是提交,格式在提交后作为未暂存的更改应用。

这是我的 .git/hooks/pre-commit:

#!/bin/bash

go fmt src/*.go

格式化后,将文件添加到索引:

#!/bin/bash

go fmt src/*.go
git add src/*.go
exit 0

在您的 README 中提及此挂钩可能是个好主意。只是为了你不要忘记。

可能更严重的一点是,您为此提交对代码所做的编辑将与 go fmt 更改无法区分。

阅读 Ian 的代码后,我有了一个似乎可行的想法。

#!/bin/bash

go fmt src/*.go
git add src/*.go