git 存储库克隆日志记录

标签 git logging repository

我想监控我的 git 存储库中的克隆事件,但是我找不到任何说明如何设置或如何检索此信息的内容。

这可能吗?如果是这样,如何设置以及如何检索日志记录信息?

最佳答案

您可以使用post-checkout Hook 来更新服务器上的数据库或文件。此 Hook 在客户端运行(即执行克隆的人将执行脚本),因此您需要从该角度设计脚本。此外,可以通过将 --no-checkout 选项添加到 git clone 来克隆存储库而不执行此 Hook 。

一个简单而可靠的方法是让服务器运行一个小型的 RESTful 网络服务,您的 Hook 可以使用 curl 或一些类似的工具调用该服务。例如:

#!/usr/bin/env python

import socket, sys, urllib, pycurl

service_url = "https://my.server.dns/service.php"
data = urllib.urlencode({
  'prev':   sys.argv[1],
  'new':    sys.argv[2],
  'branch': sys.argv[3],
  'host':   socket.gethostname()
  })

c = pycurl.Curl()
c.setopt(pycurl.URL, service_url)
c.setopt(pycurl.POSTFIELDS, data)
c.perform()

参见 http://www.kernel.org/pub/software/scm/git/docs/githooks.html .

关于git 存储库克隆日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11719936/

相关文章:

git - 当 TLSv1 失败并显示 "Ignored Unknown Record"时,让 git 恢复到 SSLv3

git - 限制开发人员访问 GitHub 存储库

java - 添加存储库会引发 bean 创建错误

maven - 即使 mvn 包存在于我的远程存储库中,它也因缺少必需的 Artifact 而失败

windows - 通过 Windows 批处理从 svnlook 获取日志消息

svn - 将文件夹从一个 SVN 存储库移动到另一个

ruby-on-rails - 使用 ruby​​ on Rails 仅从 github api 中提取 Unresolved 问题,而不进行任何 pull 请求

Git 将子模块干净地 merge 到父树中并保留提交历史记录

logging - 如何使用 NLog 登录到具有不同日志记录级别的多个目标?

java - 使用 slf4j API 的 logback 的性能问题