我正在制作一个 git post-commit 挂钩来将我的提交消息发布到 Twitter。我已经在服务器上设置了钩子,这意味着它只在我调用git push
.
为了与 python 中的 git 交互,我正在使用GitPython。在我的代码中,我repo.head.commit.message
用来获取最新的提交消息。这意味着如果我推送多个提交,它只会得到最后一个。
这就是我到目前为止所拥有的。
class GITHelper:
"This class interacts with GIT for us"
def __init__(self, path):
repo = git.Repo(path)
headcommit = repo.head.commit
self.message = headcommit.message
self.author = headcommit.author.name
如何从推送中获取所有提交?或者,我怎样才能获得推送的提交数量?
repo.iter_commits('master', max_count=5)
可以得到尽可能多的提交,所以如果我知道有多少提交,我可以使用它。
编辑:我正在测试,当我运行时git push
,似乎这个钩子从最后一次提交中获得了头部,而不是我刚刚推送的那个。如何制作一个提交后挂钩,从我刚刚推送到服务器的提交中获取消息?
编辑 2:我实际上使用的是更新挂钩,而不是提交后挂钩,这是在服务器上使用的正确挂钩吗?