Git pre-commit hook用作post-commit

时间:2015-09-24 11:17:35

标签: git github version-control pre-commit-hook

标题几乎说明了一切。

在本地仓库中,我有.git文件夹,其中包含我的钩子。我使用我的自定义Lua源将当前版本写入文件内部。然后在预提交钩子中我有:

#!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments.  The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".

echo "START" >> E:/Desktop/tmp.txt

exec $LUA_HOME\\lua.exe ${PWD}\\hooks\\pre-commit.lua "${PWD}/lua/autorun/trackassembly_init.lua" "Rev." > E:/Desktop/tmp.txt

我有两个文件。在第一个我做的实际更改(源文件)。第二个用于在(版本文件)中编写当前版本。

每当我使用TortoiseGit并执行:

1) Modify the source file
2) Repo Directory --> Right Click --> Git Commit "master"

有关源文件的信息会添加到索引中,但是没有更新版本文件的跟踪,其中包含新版本。这导致工作副本和版本文件之间存在差异,TortoiseGit会在目录中放置(!)。

根据手册:

在您输入提交消息之前,首先运行预提交挂钩。它用于检查即将提交的快照,查看是否忘记了某些内容,确保测试运行,或检查代码中需要检查的内容。从此挂钩退出非零会中止提交

1 个答案:

答案 0 :(得分:1)

在git中,你首先进行一次更改(git add),然后你提交它(git commit),然后你推它,但这里并不重要。提交后挂钩在提交后运行;如果您在那时更改了工作副本,则不会影响分阶段的更改。