我有一个简单的提交后挂钩:
#!/bin/sh
python .git/hooks/post-commit.py
git add "__version__"
git commit --amend -C HEAD --no-verify
首先在post-commit.py中调用文件覆盖
if __name__ == "__main__":
#
# Read temp version
with open("__version__.tmp", "r") as f:
version = f.read().strip()
#
# Write message
with open("__version__", "w") as f:
f.write(version)
#
# Remove temp file
os.remove("__version__.tmp")
但是,我使用Eclipse IDE开发和提交,我相信它有自己的git Java实现,我的post-commit钩子git commit --amend -C HEAD --no-verify
的最后一行会导致异常:
被“post-commit”挂钩拒绝...无法创建'... git / index.lock'文件存在。
我怀疑这是因为Eclipse的实现,egit,已经打开了一个锁文件,这阻止了在使用Eclipse提交时在任何钩子中调用git。
有人可以确认或否认吗?最终,如果有人能提出建议,那么解决方案会很棒。
谢谢!