标题几乎说明了一切。
在本地仓库中,我有.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会在目录中放置(!)。
根据手册:
在您输入提交消息之前,首先运行预提交挂钩。它用于检查即将提交的快照,查看是否忘记了某些内容,确保测试运行,或检查代码中需要检查的内容。从此挂钩退出非零会中止提交
答案 0 :(得分:1)
在git中,你首先进行一次更改(git add
),然后你提交它(git commit
),然后你推它,但这里并不重要。提交后挂钩在提交后运行;如果您在那时更改了工作副本,则不会影响分阶段的更改。