git 预提交挂钩:更改的文件不在当前提交中

git pre-commit hook: changed files are not in the current commit

我有一个 git 预提交挂钩,它可以在文件损坏时更改它们。挂钩完成后,更改的文件不会在当前提交中列出。如何将挂钩中的更改暂存到当前提交中?

我的钩子是这样的:

#!/bin/sh
versionUpdater -editVersion

这会打开一个 windows 表单,我可以在其中编辑某些文件的某些版本。完成编辑后,我希望这些更改在当前提交中。

钩子中的那些更改现在列在下一次提交中。

有几个选项。 以下答案将详细说明需要做什么以及如何做。

Can a Git hook automatically add files to the commit?.

在预提交中:

  • Touch a file .processCommit or something. (be sure to add this to .gitignore)
#!/bin/sh 
echo 
touch .processCommit 
exit

在 post-提交中:

if .processCommit exists you know a commit has just taken place.

#!/bin/sh
echo
if [ -a .commit ]
    then
    rm .commit
    git add yourfile
    git commit --amend -C HEAD --no-verify
fi
exit