我想在Git中使用预提交或后提交钩子来添加一个自动生成的文件到同一次提交中,具体取决于该次提交中修改的文件。我该如何操作?
我已经尝试过将其作为预提交钩子使用,但没有成功:
我已经尝试过将其作为预提交钩子使用,但没有成功:
#!/bin/sh
files=`git diff --cached --name-status`
re="<files of importance>"
if [[ $files =~ $re ]]
then
echo "Creating files"
exec bundle exec create_my_files
exec git add my_files
exec git commit --amend -C HEAD
fi
这成功地将它们添加到仓库中,但并没有将它们添加到提交中。我还尝试了使用最后两行执行代码在提交后钩子中与预提交检查一起使用,但是也没有用。
exec
(参见man sh
)。在exec
之后,任何 shell 命令都无法被执行,因为exec
覆盖了当前进程,即用于解释命令的 shell。 - Martin Jambon