Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git存储库克隆日志_Git_Logging_Repository - Fatal编程技术网

git存储库克隆日志

git存储库克隆日志,git,logging,repository,Git,Logging,Repository,我希望在我的git存储库中监视克隆活动,但是我找不到任何显示如何设置或如何检索此信息的内容 这可能吗?如果是这样的话,该如何设置以及如何检索日志信息?我认为克隆上存储库的服务器端没有运行任何钩子或类似的东西。git可能只是使用指定的协议(ssh、http等)并获取适当的文件。您可以尝试以某种方式监视该活动。您可以使用签出后挂钩来更新服务器上的数据库或文件。这个钩子在客户端运行(也就是说,执行克隆的人将执行脚本),因此您需要从这个角度设计脚本。另外,通过将--no checkout选项添加到git

我希望在我的git存储库中监视克隆活动,但是我找不到任何显示如何设置或如何检索此信息的内容


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

我认为克隆上存储库的服务器端没有运行任何钩子或类似的东西。git可能只是使用指定的协议(ssh、http等)并获取适当的文件。您可以尝试以某种方式监视该活动。

您可以使用
签出后挂钩来更新服务器上的数据库或文件。这个钩子在客户端运行(也就是说,执行克隆的人将执行脚本),因此您需要从这个角度设计脚本。另外,通过将
--no checkout
选项添加到
git clone
中,可以在不执行此钩子的情况下克隆存储库

一种简单可靠的方法是让服务器运行一个小型的RESTful web服务,钩子可以使用
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()

请看。

我本来想发布相同的问题,但发现了这个问题。 我能找到的更好的方法是包装
git upload pack
命令来记录调用。这只适用于ssh,但请参见:

但只有root才能做到这一点。这对我不起作用,但也许对其他人来说是一个解决办法

您可以安装一个“git服务器”来控制访问,比如gitolite()。您可以直接记录它,也可以扩展它的功能