2015-05-21 90 views
5

我寫了一個腳本,通過掃描源代碼生成Readme.md文件(用於GitHub)。每次我做一個新的提交之前,我都會手動運行這個腳本來更新Readme.md。如果這項工作自動完成,那肯定會更好。在提交之前運行腳本並在此提交中包含更新?

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

有沒有辦法運行這個腳本,並使更新的一部分,這個提交?

回答

3

根據this SO thread (Can a Git hook automatically add files to the commit?)git add將不會在最近版本的git的預提交鉤子上工作。

作爲一種解決方法,您可以使用預提交和提交後鉤子來生成您的Readme.md,然後在您提交後提交鉤子後提交它,然後修改您的第二次提交。

不是我的想法,請按照原始解釋的鏈接。

@bitluck回答的線程我聯繫:

觸摸文件.commit什麼的。 (一定要加這的.gitignore)

#!/bin/sh 
echo 
touch .commit 
exit 

如果.commit存在,你知道犯剛剛發生但 提交後尚未運行。所以,你可以在這裏做你的代碼生成。 此外,測試.commit而且如果它存在:

  • 添加文件
  • 提交--amend -C HEAD --no - 驗證(避免循環)
  • 刪除.commit文件

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