Git 在预提交钩子期间再次转移文件?
我已经在预提交钩子中安装了Git 在预提交钩子期间再次转移文件?,git,githooks,pre-commit-hook,pre-commit,Git,Githooks,Pre Commit Hook,Pre Commit,我已经在预提交钩子中安装了mvnjavaformatter:formattask。此任务将格式化java源代码 pushd src/ > /dev/null mvn java-formatter:format RETVAL=$? if (($RETVAL == 1)); then exit 1 fi popd > /dev/null 我需要附加新格式化的源文件以提交。如何执行此操作?应该能够包含一个git add,以修改即将提交的索引 例如,见“” 尝试一个gi
mvnjavaformatter:format
task。此任务将格式化java源代码
pushd src/ > /dev/null
mvn java-formatter:format
RETVAL=$?
if (($RETVAL == 1)); then
exit 1
fi
popd > /dev/null
我需要附加新格式化的源文件以提交。如何执行此操作?应该能够包含一个git add
,以修改即将提交的索引
例如,见“”
尝试一个git add-a:/。(请参阅“”)
如果只需要添加已暂存的文件,则需要:
- 要么
- 或者过滤器o,如在
中git add$(git diff--name only--cached)
- 这是可能的,但需要一个复杂的脚本
在这里你可以发现同样的问题已经解决了。在那里,它在每次提交时更新文件版本,而不是格式化代码。它正在充分发挥作用:
然后用“格式化代码”算法替换文件“updateVersion.sh”上的“版本文件替换”算法。也许您需要更改一些内容,例如,删除分支限制,因为只有在“开发”分支上,脚本才会运行
此外,它只会在暂存时更改文件。如果文件未暂存,则它将不执行任何操作。更准确地说,它会打印出它在每个步骤上所做的操作。这不也会添加带有以前没有进行过阶段性更改的文件吗?@Melebius True。我已经修改了我的答案,只添加(已经)暂存文件。