Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 在提交之前运行脚本并在此提交中包含更新?_Git_Githooks - Fatal编程技术网

Git 在提交之前运行脚本并在此提交中包含更新?

Git 在提交之前运行脚本并在此提交中包含更新?,git,githooks,Git,Githooks,我编写了一个脚本,通过扫描源代码生成Readme.md文件(用于GitHub)。每次在进行新提交之前,我都会手动运行此脚本以更新Readme.md。如果这项工作能自动完成肯定会更好 目前我使用的是pre-commitgit-hook,它只能部分工作。将更新Readme.md文件,但是更新不是此提交的一部分。我必须在下一次提交中包含它 是否有办法运行此脚本并使更新成为此提交的一部分?根据,git add在最新版本的git的预提交钩子上不起作用 作为一种解决方法,您可以使用提交前和提交后钩子来生成R

我编写了一个脚本,通过扫描源代码生成
Readme.md
文件(用于GitHub)。每次在进行新提交之前,我都会手动运行此脚本以更新
Readme.md
。如果这项工作能自动完成肯定会更好

目前我使用的是
pre-commit
git-hook,它只能部分工作。将更新
Readme.md
文件,但是更新不是此提交的一部分。我必须在下一次提交中包含它

是否有办法运行此脚本并使更新成为此提交的一部分?

根据,
git add
在最新版本的git的预提交钩子上不起作用

作为一种解决方法,您可以使用提交前和提交后钩子来生成
Readme.md
,然后在使用提交后钩子进行提交后再使用您的钩子进行第二次提交

这不是我的想法,请按照链接进行原始解释

通过我链接的线程回答:

触摸一个文件,提交或者其他什么。(请确保将其添加到.gitignore)

如果.commit存在,则您知道刚刚发生了一次提交,但 post commit尚未运行。因此,您可以在这里生成代码。 此外,测试.commit,如果它存在:

  • 添加文件
  • commit--amend-C HEAD--no-verify(避免循环)
  • 删除.提交文件

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