git - 如何在当前 HEAD 和推送中的最新文件之间的预接收 Hook 中获取文件的 git diff?

标签 git diff hook gitolite

如何在 A 和 B 之间的预接收 Hook 中获取 git diff

  • A. (最新版本的 somefile.ext 查看)服务器上的当前 HEAD
  • B. (查看最新版本的somefile.ext)从预接收钩子(Hook)接收树

我需要这个,因为当某些文件发生更改(在 Gitolite 服务器上)时,我们希望收到通知并通过电子邮件查看 A 和 B 之间的差异。

环境:Ubuntu server 11 + Gitolite + 预接收钩子(Hook)

最佳答案

我认为您实际上想使用后接收,因为预接收主要用于拒绝更新,而后接收用于通知(这似乎是您想要做的)。

两者都获得相同的输入(通过标准输入),并且记录在 githooks(5)
输入是更新的引用及其旧的和新的提交哈希值的列表。
您可以使用此数据来执行 git diff

关于git - 如何在当前 HEAD 和推送中的最新文件之间的预接收 Hook 中获取文件的 git diff?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10916871/

相关文章:

git - SubGit:如何排除分支?

c# - 什么会导致 git pull(通过 libgit2sharp)出现 401 错误?

python - SQLAlchemy 声明中基于对象的默认值

Java/SWT : How to receive mouse events from an embedded window

git - 为什么 `git clone` 不克隆所有分支?

git - 使用 Git 将未 merge 的功能分支 merge 到另一个功能分支

javascript - 算法:将列表从一个顺序重新排列到另一个顺序的最佳方法?

svn - 如何在 WinMerge 中忽略 SVN 文件夹?

javascript - 大型 JSON 数据的 JSON 差异,发现一些 JSON 作为另一个 JSON 的子集

git - Gitorious 是否有 CIA 提交通知的 Hook ?