在预提交挂钩期间再次暂存文件?
Staging again files during pre-commit hook?
我已经在预提交挂钩中安装了 mvn java-formatter:format
任务。此任务将格式化 java 源代码。
pushd src/ > /dev/null
mvn java-formatter:format
RETVAL=$?
if (($RETVAL == 1)); then
exit 1
fi
popd > /dev/null
我需要附加新格式化的源文件才能提交。我该怎么做?
pre-commit hook应该可以包含一个git add
,来修改即将提交的索引。
参见示例“git pre-commit
hook, add file into index”。
尝试 git add -A :/.
(参见“Add as if from the root folder of the repository”)
如果您只需要添加已经暂存的文件,那么您需要:
- 或者 add files per pattern
- 或过滤器 only the staged files,如
git add $(git diff --name-only --cached)
.
可以做到这一点,但需要一个棘手的脚本。
在这里您可以找到已解决的相同问题。在那里,它在每次提交时更新文件版本,而不是格式化代码。它正在全面运作:
https://github.com/addonszz/Galileo/tree/master/githooks
然后您只需用 'Formatting Code' 算法替换文件 'updateVersion.sh' 上的 'Version File Replacement' 算法。也许您需要更改一些内容,例如删除分支限制,因为只有在 'develop' 分支上,脚本才会运行。
此外,它只会更改文件(如果暂存)。如果文件没有暂存,那么它什么都不做。更准确地说,它会打印出每一步都在做什么。
我已经在预提交挂钩中安装了 mvn java-formatter:format
任务。此任务将格式化 java 源代码。
pushd src/ > /dev/null
mvn java-formatter:format
RETVAL=$?
if (($RETVAL == 1)); then
exit 1
fi
popd > /dev/null
我需要附加新格式化的源文件才能提交。我该怎么做?
pre-commit hook应该可以包含一个git add
,来修改即将提交的索引。
参见示例“git pre-commit
hook, add file into index”。
尝试 git add -A :/.
(参见“Add as if from the root folder of the repository”)
如果您只需要添加已经暂存的文件,那么您需要:
- 或者 add files per pattern
- 或过滤器 only the staged files,如
git add $(git diff --name-only --cached)
.
可以做到这一点,但需要一个棘手的脚本。
在这里您可以找到已解决的相同问题。在那里,它在每次提交时更新文件版本,而不是格式化代码。它正在全面运作: https://github.com/addonszz/Galileo/tree/master/githooks
然后您只需用 'Formatting Code' 算法替换文件 'updateVersion.sh' 上的 'Version File Replacement' 算法。也许您需要更改一些内容,例如删除分支限制,因为只有在 'develop' 分支上,脚本才会运行。
此外,它只会更改文件(如果暂存)。如果文件没有暂存,那么它什么都不做。更准确地说,它会打印出每一步都在做什么。