7
A
回答
0
我不認爲有任何鉤子或類似的東西在克隆的存儲庫的服務器端運行。 git可能只是使用指定的協議(ssh,http,...)並獲取相應的文件。您可以嘗試以某種方式監視該活動。
2
您可以使用post-checkout
鉤子來更新服務器上的數據庫或文件。這個鉤子在客戶端運行(即,執行克隆的人將執行腳本),因此您需要從該角度設計腳本。此外,可以通過將--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()
請參閱http://www.kernel.org/pub/software/scm/git/docs/githooks.html。
0
我打算髮表相同的問題,但找到了這一個。 我能找到的更好的方法是包裝git-upload-pack
命令以記錄呼叫。這隻會通過ssh看到:pre-fetch hook functionality in git
但是隻有root才能做到這一點。它對我來說不起作用,但也許它是其他人的解決方案。
你總是可以安裝一個「git服務器」來控制訪問像gitolite(http://sitaramc.github.com/gitolite/master-toc.html)。您可以直接登錄,也可以擴展它的功能。
相關問題
- 1. 沒有克隆存儲庫的Git日誌?
- 2. 克隆遠程git存儲庫問題
- 3. 使git克隆自己的存儲庫
- 4. 無法克隆LibreOffice git存儲庫
- 5. 維護git存儲庫的克隆
- 6. 用於克隆GIT存儲庫的GUI
- 7. Git for windows - 無法克隆存儲庫
- 8. 問setuptools git克隆C++存儲庫
- 9. 無法克隆git存儲庫
- 10. 本地克隆Git存儲庫
- 11. 無法克隆我的Git存儲庫
- 12. 無法克隆git存儲庫
- 13. Git存儲庫克隆failed.missing CR
- 14. 從廚師克隆git存儲庫
- 15. Git克隆 - 無法克隆遠程存儲庫
- 16. 通過使用GIT命令克隆TFS-GIT存儲庫到GIT存儲庫(Linux)
- 17. 將git存儲庫克隆到退出的非空目錄
- 18. 克隆git倉庫的.git目錄
- 19. 從git-svn克隆的遠程存儲庫更新裸Git存儲庫
- 20. 克隆存儲庫到GitHub
- 21. NGIT:克隆CodeCommit存儲庫
- 22. 克隆存儲庫和refspecs
- 23. 如何使用git bash標記我在Git Desktop中克隆的存儲庫?
- 24. Gitlab在克隆git存儲庫時提示輸入git密碼
- 25. 克隆git倉庫
- 26. Github:克隆存儲庫,更改克隆,並提交原始庫
- 27. Git存儲庫克隆與GitPython - 找不到存儲庫身份驗證失敗
- 28. 有沒有辦法克隆包括其遠程存儲庫的git存儲庫?
- 29. git克隆到主目錄
- 30. 用git克隆子目錄