【问题标题】:Staging again files during pre-commit hook?在预提交挂钩期间再次暂存文件?
【发布时间】:2015-10-10 11:58:57
【问题描述】:

我已经在预提交挂钩中安装了mvn java-formatter:format 任务。此任务将格式化 java 源代码。

pushd src/ > /dev/null

mvn java-formatter:format
RETVAL=$?
if (($RETVAL == 1)); then
        exit 1
fi

popd > /dev/null

我需要附加新格式化的源文件以提交。我该怎么做?

【问题讨论】:

    标签: git githooks pre-commit-hook pre-commit


    【解决方案1】:

    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”)

    如果您只需要添加已经暂存的文件,那么您需要:

    【讨论】:

    • 这不是也添加了之前没有暂存的更改文件吗?
    • @Melebius 真的。我已经修改了我的答案,只添加(已经)暂存的文件。
    【解决方案2】:

    这是可能的,但需要一个棘手的脚本。

    在这里您可以找到同样的问题已解决。在那里,它在每次提交时更新文件版本,而不是格式化代码。它正在完全工作: https://github.com/addonszz/Galileo/tree/master/githooks

    然后,您只需将文件“updateVersion.sh”上的“版本文件替换”算法替换为“格式化代码”算法。也许您需要更改一些内容,例如删除分支限制,因为那里的脚本只有在您位于“开发”分支时才会运行。

    此外,它只会更改文件(如果已暂存)。如果文件没有暂存,那么它什么也不做。更准确地说,它会打印出每一步都在做什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-09
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      相关资源
      最近更新 更多